技能 allra-error-handling
📦

allra-error-handling

安全

實施標準化錯誤處理

Java Spring 應用程式通常缺乏一致的錯誤處理模式。本技能提供完整的錯誤處理標準,包括異常層級、全域異常處理器和結構化錯誤響應。

支援: Claude Codex Code(CC)
📊 71 充足
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 列舉,以在微服務架構中實現一致的錯誤處理。

開發者詳情

檔案結構

📄 SKILL.md