エラー処理・ログ出力を書くときは本方針に従うこと.
| 分類 | 例 | 処理 |
|---|---|---|
| ユーザー入力エラー | 拡張子違い,クリック数超過,未読込での診断 | gui/ でガードし,メッセージボックスで案内(文言は SPEC_01「入力ガード」) |
| データエラー | 変換行列 CSV の形式不正,data.csv の欠損 | core/ が専用例外を送出し,gui/ が捕捉してエラーダイアログ表示 |
| 診断失敗 | SVM が学習不能(正例不足等) | core/ が失敗を示す結果を返し,結果画面に「Diagnosis failed」を表示(SPEC_02「診断失敗の判定」) |
| バグ(想定外) | 上記以外の例外 | 捕捉して握りつぶさない.スタックトレースをログに残して落とす |
core/ に専用例外を定義する(例: DataFormatError).core/ は GUI を知らないため,メッセージボックス表示等は行わない(依存方向は project-structure.md 参照)except Exception: pass)は禁止.捕捉するのは「その場で意味のある対処ができる」場合のみcore/ の内部では検証済みを前提とするlogging を使う.print によるデバッグ出力を残さないcore/ はモジュールロガー(logging.getLogger(__name__))を使い,出力先の設定はエントリポイント側で行う