1.例外処理(エラー処理)とは
例外処理とは、プログラム中でエラーが起きても強制終了させず、代わりの処理を実行する仕組みです。
<例>
- ゼロで割ってしまった
- ファイルが見つからない
- 入力が数字ではない
- ネット通信がタイムアウトした
こういう「予期せぬエラー」を安全に処理できるようにするのが 例外処理 です。
2.例外処理の基本形
try:
実行する処理
except エラーの種類:
エラー時の処理
✔ 例:0 で割った場合のエラーを処理
try:
x = 10 / 0
except ZeroDivisionError:
print("0 で割ることはできません")
ZeroDivisionError が発生すると except に飛ぶ。
3.except は複数書ける
try:
num = int(input("数字を入力: "))
result = 10 / num
except ValueError:
print("数字を入力してください。")
except ZeroDivisionError:
print("0 は入力できません。")
最初に該当したexceptで処理するため順番注意。
4.except をまとめる(複数の例外を一度に処理)
try:
x = int("abc")
except (ValueError, TypeError):
print("型に問題があります")
5.すべての例外をまとめて受ける(最後の手段)
try:
risky()
except Exception as e:
print("エラー発生:", e)
初心者が最初に使うなら便利。
ただし原因がわからなくなるため、本格的なプログラムでは注意。
6.else(エラーが“起きなかった場合”の処理)
try:
num = int(input("数字を入力: "))
except ValueError:
print("数字を入力してください")
else:
print("成功!", num)
else は「try が正常に完了したとき」だけ実行。
7.finally(エラーの有無に関わらず必ず実行)
try:
f = open("test.txt", "r")
except FileNotFoundError:
print("ファイルなし")
finally:
print("必ず実行される処理")
代表的な用途:
- ファイルを閉じる
- ネット接続を切断する
- ロックを解除する
8.よく使う例外一覧
| 例外名 | 説明 |
| ValueError | 型はOKだが値が不正 |
| TypeError | 型が不正 |
| ZeroDivisionError | 0 で割った |
| FileNotFoundError | ファイルがない |
| KeyError | 辞書にキーがない |
| IndexError | リスト範囲外 |
| ImportError | モジュール読み込み失敗 |
9.実践例
✔ :安全にファイルを読む
try:
with open("data.txt", "r", encoding="utf-8") as f:
text = f.read()
except FileNotFoundError:
print("data.txt が見つかりません")
else:
print(text)
✔ 実践例:ユーザー入力の安全チェック
while True:
try:
age = int(input("年齢を入力: ")) #intでキャストできないとエラーが発生
break
except ValueError:
print("数字を入力してください")
print("年齢は", age)
“正しい入力が来るまで繰り返す” 典型パターン。
