🐷

エラーの分類

2025/03/28に公開

問題意識

  • システムで発生し得る問題をどのように扱えば、ユーザーと開発者の双方にとって分かりやすくなるか

対応方針

  • 問題を以下の 3 つに分類し、それぞれに適切な対処を行う

ドメインエラー

  • ビジネスプロセスの一部として処理すべきエラー
    • 例: 発生時にユーザーへ情報を提示する必要があるケース
  • ワークフロー内で適切な対処が実施される
  • ドメインの一部であり、可能であれば型システムで文書化されるべき

パニック

  • 処理が不可能なシステムエラー
    • 例: メモリ不足や null 参照
  • ワークフローを放棄し、例外を発生させる
    • 発生した例外は適切かつ最も高いレベルで補足されるべき

インフラストラクチャエラー

  • ビジネスプロセスの一部ではないが、アプリケーションで発生し得るエラー
    • 例: ネットワークタイムアウトや認証失敗
  • ワークフロー内で処理する手段も、ワークフローを放棄する手段も選択可能
  • 多くの場合、インフラストラクチャエラーはドメインエラーと同様に扱う方が有用
    • 問題が発生した際にユーザーへ影響がある場合は、ビジネスプロセスに含めるべき可能性がある
      • そのような問題については、プロダクトオーナーを含めて対処方法を検討する必要がある

Discussion