この記事では、Pythonの例外処理の使い方について解説します。
例外処理を定義することでエラーが起きた際の処理を指定することができます。
それでは、使い方を見ていきましょう!
例外処理の使い方
例外処理はtryとexceptを使って記述します。tryのブロック内でエラーが発生したらexceptが処理されます。
try:
# 処理
except:
# エラーが発生した場合に処理される
オプションとしてfinallyを定義できます。finallyはエラーが発生してもしなくても例外処理の最後に処理されます。
try:
# 処理
except:
# エラーが発生した場合に処理される
finally:
# 例外処理の最後に処理される
サンプル
以下のコードは、tryブロック内であえてエラーを発生させてその後の挙動を確認してみます。
value = 'one'
try:
value = int(value)
except:
print('valueはintに変換できません')
実行結果
valueはintに変換できません
発生したエラーの型で処理を変える
exceptにエラーの型を指定することで処理を分けることができます。
value = 'one'
try:
value = int(value)
except ValueError: # ValueErrorを指定
print('ValueErrorが発生')
except:
print('その他エラーが発生')
実行結果
ValueErrorが発生
エラーメッセージを受け取る
以下のようにasを使うことでエラーの詳細を受け取ることができます。
num = 'one'
try:
int(num)
except ValueError as e:
print(e)
実行結果
invalid literal for int() with base 10: 'one'
エラーを投げる
raise文を使うことでエラーを自発的に発生させることができます。
以下のコードでは、func関数を呼び出す際に引数に0を渡すとraies文が処理されてエラーが発生します。
def func(num: int):
if num == 0:
raise
try:
func(0)
except:
print('func関数でエラー発生')
実行結果
func関数でエラー発生
エラーの型とメッセージを指定する
raise文にエラーの型を指定することで発生させるエラーの型を指定できます。また、引数に文字列を指定することでエラーメッセージを指定できます。
def func(num: int):
if num == 0:
raise ValueError('エラーが発生!')
try:
func(0)
except ValueError as e:
print(e)
実行結果
エラーが発生!
まとめ
この記事では、Pythonの例外処理について解説しました。
今回のおさらい
もし、理解できない箇所があったら記事を読み返してみましょう!
def func():
raise ValueError('ValueErrorが発生しました!')
try:
func()
except ValueError as e:
print(e)
except:
print('その他のエラー')
finally:
print('例外処理終了!')
実行結果
ValueErrorが発生しました!
例外処理終了!
それでは今回の内容はここまでです!ではまたどこかで〜( ・∀・)ノ
Link8. エラーと例外 — Python 3.9.1 ドキュメント