技能 allra-error-handling
📦
allra-error-handling
安全
實施標準化錯誤處理
Java Spring 應用程式通常缺乏一致的錯誤處理模式。本技能提供完整的錯誤處理標準,包括異常層級、全域異常處理器和結構化錯誤響應。
支援: Claude Codex Code(CC)
1
下載技能 ZIP
2
在 Claude 中上傳
前往 設定 → 功能 → 技能 → 上傳技能
3
開啟並開始使用
測試它
正在使用「allra-error-handling」。 Create a custom exception for user not found scenarios
預期結果:
- public class UserNotFoundException extends BusinessException {
- public UserNotFoundException(Long userId) {
- super(ErrorCode.USER_NOT_FOUND,
- String.format("사용자(id=%d)를 찾을 수 없습니다", userId));
- }
- }
正在使用「allra-error-handling」。 Implement error handling for validation failures
預期結果:
- public record ErrorResponse(
- String code,
- String message,
- List<FieldError> errors,
- LocalDateTime timestamp
- ) {}
安全審計
安全v6 • 1/21/2026
All static findings are false positives. The skill is a documentation-only skill containing Java code examples for error handling patterns. No actual security risks present.
2
已掃描檔案
758
分析行數
0
發現項
6
審計總數
未發現安全問題
審計者: claude 查看審計歷史 →
品質評分
38
架構
100
可維護性
87
內容
32
社群
100
安全
91
規範符合性
你能建構什麼
建立一致的 API 錯誤響應
設計跨所有 REST 端點的標準化錯誤響應格式,包含一致的錯誤代碼、訊息和欄位級別驗證詳細資訊。
實作特定領域異常
為業務邏輯錯誤建立自訂異常層級,例如 EntityNotFoundException、DuplicateResourceException 和授權失敗。
新增集中式異常處理
實作全域異常處理器,統一捕獲和處理所有異常,確保向 API 用戶端返回一致的錯誤響應。
試試這些提示
基本錯誤處理
為 Java Spring Boot 應用程式建立業務異常層級。包括基礎 BusinessException 類別、包含常見 HTTP 錯誤代碼的 ErrorCode 列舉,以及像 UserNotFoundException 這樣的特定領域異常範例。
全域異常處理器
實作 @RestControllerAdvice GlobalExceptionHandler,處理 BusinessException、用於驗證錯誤的 MethodArgumentNotValidException 和一般 Exception。返回包含時間戳、錯誤代碼、訊息和欄位錯誤的結構化 ErrorResponse。
結構化錯誤響應
在 Java 中設計 ErrorResponse 記錄,包含錯誤代碼、訊息、欄位級別錯誤列表(包含欄位名稱、拒絕值和錯誤訊息)以及時間戳。提供不同錯誤場景的工廠方法。
服務層錯誤模式
展示如何在 Spring 服務層中使用自訂異常。包括搭配 EntityNotFoundException 的 orElseThrow 範例、使用 DuplicateResourceException 進行重複資源驗證,以及使用 ForbiddenException 進行授權檢查。
最佳實務
- 為所有業務異常定義具有一致 HTTP 狀態碼和錯誤代碼的集中式 ErrorCode 列舉
- 對預期的業務異常使用 WARN 級別日誌,對意外的系統異常使用 ERROR 級別日誌
- 從錯誤響應和日誌訊息中排除敏感數據,防止資訊洩漏
避免
- 拋出通用的 Exception 或 RuntimeException 而不是自訂業務異常
- 直接向 API 用戶端暴露堆疊追蹤或內部錯誤詳細資訊
- 使用字串串接而非參數化日誌以獲得結構化日誌輸出
常見問題
此技能與 Spring 預設的錯誤處理有何不同?
本技能提供標準化的企業級錯誤處理模式,包括自訂異常層級、結構化錯誤響應和一致的日誌記錄。Spring 預設的錯誤處理較為基本,不適合用於正式環境 API。
我可以在非 Spring 的 Java 應用程式中使用嗎?
異常層級和錯誤響應模式可以適應任何 Java 應用程式。但是,@RestControllerAdvice 範例僅適用於 Spring Boot。
如何處理來自請求體的驗證錯誤?
在請求體參數上使用 @Valid 並在 GlobalExceptionHandler 中捕獲 MethodArgumentNotValidException。從 BindingResult 提取欄位錯誤並將其包含在 ErrorResponse 中。
我應該在錯誤響應中包含堆疊追蹤嗎?
不可以。堆疊追蹤會暴露內部實作詳細資訊並可能洩漏敏感資訊。在正式環境中應始終返回對使用者友好的訊息。
如何正確記錄錯誤而不暴露敏感數據?
使用帶有佔位符的參數化日誌,例如 log.warn("User not found: userId={}", id)。切勿直接記錄使用者輸入、密碼或敏感欄位。
我可以將此模式擴展到微服務嗎?
可以。將關聯 ID 添加到 ErrorResponse 以進行分散式追蹤。考慮標準化跨服務的 ErrorCode 列舉,以在微服務架構中實現一致的錯誤處理。