Claude Codeでエラー分類システムを設計する:運用エラーvsプログラマーエラー・エラーカタログ・一貫したAPIエラーレスポンス
はじめに 「エラーハンドリングがバラバラでAPIが一貫したエラーを返さない」「500エラーと400エラーが混在していて原因が追えない」——エラーを体系的に分類し、一貫したエラーレスポンスとロギングを設計をClaude Codeに生成させる。 CLAUDE.mdにエラー分類設計ルールを書く ## エラー分類設計ルール ### エラーの種類 - Operational Error(運用エラー):...

Source: DEV Community
はじめに 「エラーハンドリングがバラバラでAPIが一貫したエラーを返さない」「500エラーと400エラーが混在していて原因が追えない」——エラーを体系的に分類し、一貫したエラーレスポンスとロギングを設計をClaude Codeに生成させる。 CLAUDE.mdにエラー分類設計ルールを書く ## エラー分類設計ルール ### エラーの種類 - Operational Error(運用エラー): 予期される失敗(バリデーション、認証失敗、NotFound) → ユーザーにエラーを返す。ログはWARNレベル - Programmer Error(プログラマーエラー): バグ(NullPointer、型エラー) → 500エラー。ログはERRORレベル。Sentryに通知 ### エラーカタログ - エラーコードを定義(例: USER_NOT_FOUND, INSUFFICIENT_BALANCE) - コード、HTTPステータス、メッセージのマッピング - エラーコードはドキュメント化してフロントエンドと共有 ### レスポンス形式 - { code: string, message: string, details?: object } - エラーコードはアルファベット大文字スネークケース - 内部エラーの詳細は本番で非表示(devのみ表示) エラー分類システム実装の生成 エラー分類システムを設計してください。 要件: - Operational/Programmerエラーの分離 - エラーカタログ - 一貫したAPIエラーレスポンス - エラーミドルウェア 生成ファイル: src/errors/ 生成されるエラー分類システム実装 // src/errors/appError.ts — アプリケーションエラー基底 export class AppError extends Error { readonly isOperational: boolean; // true = 運用エラー、false = プログラマーエラー constructor( message: string, readonly code: string, readonly statusCode: number, readonly details?: Record<string, unknown&