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

## 基本方針 (Principle)

- 研究用のローカル実行ツールのため，過度な防御的プログラミングは行わない
- エラーは早期に検出し，原因がわかるメッセージで失敗させる

## エラーの分類 (Error Categories)

| 分類 | 例 | 対処 |
| --- | --- | --- |
| 入力エラー | 画像ファイルが存在しない，形式が不正 | メッセージを出して即終了 |
| 計算エラー | ゼロ除算，配列サイズ不一致 | 原因を特定できるメッセージで例外を送出 |
| 出力エラー | 書き込み先ディレクトリが存在しない | ディレクトリを自動作成する |

## 実装ルール (Rules)

- 入力の検証は **システム境界**（画像読み込み時）で行う

```python
def load_image(path: str) -> numpy.ndarray:
    if not Path(path).exists():
        raise FileNotFoundError(f"画像ファイルが見つかりません: {path}")
```

- 内部関数間では型や値の検証を重複させない
- `print` ではなく例外で失敗を通知する
- 例外は握りつぶさない（空の `except:` 禁止）

## ログ出力 (Logging)

- 現時点では `print` による簡易出力で十分とする
- 処理の開始・完了を表示する程度にとどめる

```python
print(f"解析開始: {image_path}")
print(f"結果を保存しました: {output_path}")
```
