例外とは
構文エラー(SyntaxError)以外のエラーを例外エラーとする。
エラーの種類
[ZeroDivisionError]
「/」や[//]、「%」で計算する時に割る数が0だった時に起きる。
割る数が0でないか確認する。
[NameError]
スペルミス、変数名ミスなどで名前が見つからなかった時に起きる。
スペルミスや変数名を間違えていないか確認する。
[TypeError]
異なるデータ型同士での演算や関数での処理が行われた時に起きる。
データ型が間違っていないか確認する。
[ValueError]
数値が適切でないときに起きる。(型は合っている)
数値を確認する。(引数とか)
書き方
- try →例外が発生するかもしれない処理
- except →例外が発生した後の対応方法
try:
例外が発生するかもしれない処理
except 想定されるエラー名:
検証したい処理で、想定されるエラーが起きた時の処理
例
while True:
try:
x = int(input('数字列入力欄'))
except ValueError:
print('有効な数字列を入力してね')
else:
break
raise文
raise文とは
強制的に例外を発生させる文
書き方例
raise エラー名(引数)
と書く。
引数にエラー内容を与えると便利。
>>> raise ZeroDivisionError("割る数が0です")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ZeroDivisionError: 割る数が0です
クリーンアップ動作
- tryから抜け出す時に実行される処理。
- finally を使って実行する。
- finallyは必ず実行される処理。