例外処理とは、エラーが起きても、プログラムを止めずに処理を続ける仕組みです。
例えば、
- 数字で割り算をするとき
- ファイルを読み込むとき
- ユーザーが入力した値を使うとき
このような場面では、エラーが起こることがあります。
その時に使うのが、try / except です。
try / except の基本
try:
実行する処理
except:
エラーが起きたときの処理まず try の中を実行し、エラーが起きた場合だけ、except の中が実行されます。
try:
num = 10 / 0
print(num)
except:
print("エラーが発生しました")上記のコードは、基本的な try / except の例です。
エラーが発生しました上記は、実行結果です。
このコードでは、10 / 0 を計算しています。
しかし、0で割ることはできないため、エラーになります。
その結果、except の処理が実行されます。
エラーの種類を指定する
try:
num = 10 / 0
except ZeroDivisionError:
print("0では割れません")上記のコードは、エラーの種類を指定する例です。
0では割れません上記は、実行結果です。
このように、except ZeroDivisionError と書くことで、特定のエラーだけを処理できます。
| エラー名 | 原因 | 例 |
|---|---|---|
| ZeroDivisionError | 0で割った | 10 / 0 |
| NameError | 存在しない変数を使った | print(x) |
| TypeError | 型が合わない | “age” + 20 |
| ValueError | 値の形式が正しくない | int(“abc”) |
| IndexError | 存在しない番号を指定した | list[5] |
| KeyError | 存在しないキーを指定した | dict[“job”] |
| AttributeError | 存在しない機能を使った | “abc”.append() |
上記は、よく使うエラー名をまとめた表です。
else を使う
try:
num = 10 / 2
except:
print("エラーです")
else:
print("成功しました")
print(num)上記は、else を使う例です。
成功しました
5.0上記は、実行結果です。
else は、エラーが起きなかった場合に実行されます。
成功したときの処理を分けて書けるので便利です。
注意点
何でも try / except で囲みすぎると、本来気づくべきエラーを見逃してしまうことがあります。
そのため、必要な場所だけ使うことが大切です。




Comment