例外を発生させる(raise)
raise 文を使うと、自分でエラーを発生させることができます。不正な引数を受け取った時などに使い、バグを早期に発見できます。
1. raiseの基本
def set_age(age):
if age < 0 or age > 150:
raise ValueError(f"不正な年齢です:{age}")
return age
try:
set_age(25)
print("設定OK")
set_age(-5)
except ValueError as e:
print(f"エラー:{e}")
▶ 出力結果
設定OK エラー:不正な年齢です:-5
2. 引数バリデーション関数
def divide(a, b):
if not isinstance(a, (int, float)):
raise TypeError("aは数値である必要があります")
if not isinstance(b, (int, float)):
raise TypeError("bは数値である必要があります")
if b == 0:
raise ZeroDivisionError("0で割ることはできません")
return a / b
print(divide(10, 4))
try:
print(divide(10, 0))
except ZeroDivisionError as e:
print(f"エラー:{e}")
▶ 出力結果
2.5 エラー:0で割ることはできません
