Newer
Older
DeepTIAS / .claude / rules / error-handling.md
@rintoHasegawa rintoHasegawa 14 days ago 1 KB [add] コーディング規約を整備

paths: ["Tongue extraction/**/*.cs"]

エラー処理方針 (Error Handling)

例外処理・ログ出力を書くときは本方針に従うこと.

エラーの分類と扱い (Error Categories)

分類例扱い
画像 1 枚だけの失敗舌を検出できない,舌領域が 1 つにまとまらないその画像を失敗として記録し,次の画像へ進む.analysis.csv の失敗行の形式(<画像名>,Tongue detection error 等)は変えない
解析を続けられない失敗モデル・外部 exe・DLL が見つからない,入力フォルダが無い解析を止め,原因(どのファイルが無いか)をダイアログで伝える
想定外の例外上記以外解析を止め,ダイアログで伝え,ログに詳細を残す.画面を操作できる状態に戻す

決まり (Rules)

  • 例外を握りつぶさない.catch だけで何もしない,または catch { } で原因を捨てる書き方をしない.捕まえた例外はログに残す.
  • 捕まえる例外の型をできるだけ具体的にする(catch (Exception) は最上位の処理だけにする).
  • BackgroundWorker で解析するときは RunWorkerCompleted で e.Error を確認し,例外を画面に伝える.
  • 外部 exe を呼んだら終了コードと出力ファイルの有無を確認し,失敗なら「画像 1 枚だけの失敗」として扱う.
  • ダイアログ(MessageBox)は画面のスレッドから出す(解析スレッドからは Invoke を使う).

ログ (Logging)

  • 解析のログは出力フォルダに log.txt として書き出す(画像ごとの開始・終了・失敗理由,想定外の例外の詳細).
  • Console.WriteLine は WinForms アプリでは見えないため,確認用の出力に使わない.
  • デバッグ用の表示(Cv2.ImShow・Cv2.WaitKey・出力先の固定等)をコミットに残さない.