例外を raise / 捕捉するコード(src/**・scripts/**)を書くときは本ルールに従うこと.コーディング全般の規約は .claude/rules/coding-style.md を参照する.
| 状況 | 送出する例外 |
|---|---|
| ユーザー入力(設定 YAML・manifest・画像ファイル等)の内容・形式の問題 | ValueError に統一して raise |
| 内部論理エラー(到達しないはずの分岐・不変条件違反等) | RuntimeError |
| pydantic を使うバリデーション | pydantic.ValidationError をそのまま伝播(握りつぶさない) |
機械学習では静かな除外が評価を歪めるため,データの問題は黙って飛ばさず止める.
patient_id の欠落・未知のラベル値・重複行・読めない画像は raise するnote 列に理由を明示し,除外件数をログに出す(人間が判断できるようにする)try で囲んで continue」は禁止.クラス分布が静かに変わり,結果の解釈を誤る例外メッセージ・ログに患者 ID・画像ファイル名を含めない.位置は行番号・件数で示す.
raise ValueError(f"manifest の {row_number} 行目: patient_id が空である")
except: で例外を無言で捨てない.捕捉するなら再送出するか,ログを残した上で明示的に処理する.claude/rules/project-structure.md の依存方向・純関数優先と対応する)