プログラミング初心者がよく迷うのが「この処理は例外にすべき?それとも普通の if / break / return で書くべき?」という判断です。
そこで、例外を使うべき場面と使うべきでない場面を見分けるチェックリストを、例題付きで分かりやすく解説します。
1. チェックリスト
例外を使うべき場面
- プログラムが続けられない異常
→ ファイルが存在しない、ネットワークが切れた、ゼロ除算など - 外部環境に依存する問題
→ ユーザー入力が不正、データベース接続失敗 - 想定外のエラーを捕まえてログに残す
→ バグや予期せぬ挙動を検知するため
例外を使うべきでない場面
- 正常な分岐や終了処理
→ 探索が終わった、条件を満たした、ループを抜けたい - 「見つからなかった」など想定内の結果
→ 検索結果ゼロ、リストが空 - 通常の制御構文で表現できる場合
→ if / break / return で十分に書ける
2. 例題で比較
❌ 例外を使いすぎた悪い例
nums = [1, 2, 3]
target = 5
try:
for n in nums:
if n == target:
print("見つかった")
raise Exception("終了") # ← 本来は break で十分
raise Exception("見つからなかった") # ← 本来は else で十分
except Exception as e:
print(e)
Python👉 正常な「見つかった/見つからなかった」まで例外にしてしまうと、コードが読みにくい。
✅ 正しい書き方(通常の制御)
nums = [1, 2, 3]
target = 5
for n in nums:
if n == target:
print("見つかった")
break
else:
print("見つからなかった")
Python👉 「見つからなかった」は想定内 → else で表現するのが自然。
✅ 例外を使うべき場面(異常)
def divide(a, b):
if b == 0:
raise ZeroDivisionError("ゼロでは割れません") # ← 異常
return a / b
try:
print(divide(10, 0))
except ZeroDivisionError as e:
print("エラー:", e)
Python👉 「ゼロで割る」は想定外の異常 → 例外で処理するのが正しい。
3. 初心者向けまとめ
- 正常な流れ(探索終了・条件分岐) →
break/return/elseを使う - 異常な流れ(環境依存・想定外エラー) →
try/exceptで例外処理 - 鉄則: 「例外は非常口、通常の制御は正規の出口」
4. 実務でのコツ
- 例外は最小限に → 本当に異常なケースだけ
- 正常な結果は例外にしない → 「見つからなかった」は普通の結果
- ログを残す → 例外を握りつぶさず、原因を記録する
💡 このチェックリストを意識すると「例外を乱用せず、読みやすいコード」が書けるようになります。

