よくあるエラー(例外)の種類
Pythonの例外には種類(クラス)があり、それぞれ原因が異なります。代表的なものを覚えておくと、デバッグが格段に速くなります。
1. よく出会う例外一覧
# ValueError:不正な値
try:
int("abc")
except ValueError as e:
print(f"ValueError: {e}")
# TypeError:型が合わない
try:
result = "100" + 50
except TypeError as e:
print(f"TypeError: {e}")
# IndexError:インデックス範囲外
try:
lst = [1, 2, 3]
print(lst[10])
except IndexError as e:
print(f"IndexError: {e}")
# KeyError:辞書のキーが存在しない
try:
d = {"a": 1}
print(d["z"])
except KeyError as e:
print(f"KeyError: {e}")
▶ 出力結果
ValueError: invalid literal for int() with base 10: 'abc' TypeError: can only concatenate str (not "int") to str IndexError: list index out of range KeyError: 'z'
2. 複数の例外を一度に捕捉
def safe_divide(a, b):
try:
return a / b
except ZeroDivisionError:
return "エラー:0で割れません"
except TypeError:
return "エラー:数値を入力してください"
print(safe_divide(10, 2))
print(safe_divide(10, 0))
print(safe_divide(10, "a"))
▶ 出力結果
5.0 エラー:0で割れません エラー:数値を入力してください
