技能 allra-error-handling
📦

allra-error-handling

安全

實施標準化錯誤處理

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

支持: Claude Codex Code(CC)
📊 70 充足
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
内容
21
社区
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