エラーハンドリング
ルール
- 構造化エラータイプ:
class AppError extends Error { code: string; statusCode: number } - Reactではクラッシュリカバリのためにエラーバウンダリを使用 — フォールバックUIを表示し、エラーをログに記録する
- グレースフルデグラデーション: 機能が失敗した場合 → メッセージを表示し、アプリをクラッシュさせない
- ユーザーフレンドリーなメッセージ: スタックトレースではなく「問題が発生しました」を表示
- エラーをコンテキスト付きでログ出力: ユーザーID、リクエストID、タイムスタンプ、エラーコード
- 一時的なエラー(ネットワーク、502、429)には指数バックオフでリトライ — 最大3回
- バリデーションエラーではフェイルファスト — 即座に400を返し、以降の処理を行わない
- 空のcatchブロックでエラーを飲み込まない — 最低でもログに出力する