Newer
Older
SmTIAS-LightSim / .claude / rules / error-handling.md

paths: ["src/", "scripts/"]

エラーハンドリング方針 (Error Handling)

例外を raise / 捕捉するコード(src/**・scripts/**)を書くときは本ルールに従うこと.コーディング全般の規約は .claude/rules/coding-style.md を参照する.

例外の使い分け (Exception Types)

状況送出する例外
ユーザー入力(YAML / STL ファイル等)の内容・形式の問題ValueError に統一して raise
内部論理エラー(到達しないはずの分岐・不変条件違反等)RuntimeError
Pydantic を使うバリデーションpydantic.ValidationError をそのまま伝播(握りつぶさない)

方針 (Policy)

  • 最小限主義: 独自例外クラスの階層はまだ導入しない.上表の標準例外で表現できる範囲に留める.表現しきれないケースが増えてきた時点で独自例外の導入を検討する.
  • メッセージは日本語可: 原因と対処が分かる具体的なメッセージを付ける(例: どのファイル・どのフィールドが不正か).
  • 握りつぶさない: except: で例外を無言で捨てない.捕捉するなら再送出するか,ログを残した上で明示的に処理する.
  • 境界で検証する: ユーザー入力の検証は入口(CLI・スキーマ読込)で行い,核計算モジュールは「検証済みの正しい入力が来る」前提で書く(.claude/rules/project-structure.md の依存方向・純関数優先と対応).

参考 (References)