Python: 例外処理の書き方(try-except文)

Pythonでの例外処理の書き方を解説します。
例外処理の構文は「try-except文」とも呼ばれ、基本的な書き方は下の通りです。 例外が発生した時の処理、 例外が発生しなかった時の処理、 必ず最後に行う処理など細かく記述できます。 それぞれの処理部分はブロックとしてインデント(字下げ)する必要があります。

例外処理の書式
try:
	例外が発生する可能性のある処理(tryブロック)

except 例外クラス名: 
	例外が発生したときの処理(exceptブロック)

else:
	例外が発生しなかったときの処理(elseブロック)
	
finally:
	必ず最後にする処理(finallyブロック)

try, except, else, finallyの文末にコロン(:)を付け忘れないようにしてください。
最低限必要なのは tryと exceptの部分です。else と finallyの部分は省略可能です。
(関連記事:最もシンプルな例外処理

except の後に例外クラス名を指定しない場合は、 すべての例外の発生を処理できます。

exceptブロックを複数記述する

except ブロックはエラーの種類に応じて複数記述できます。 例えば、ファイルを扱う場合の例外処理を分けることもできます。

次のコードではファイルが存在しない場合の「FileNotFound」エラーと、 すでに存在するファイルを作成しようとした場合の「FileExistsError」を 別々のブロックに分けています。

except FileNotFound:
	処理

except FileExistsError:
	処理

「FileNotFound」や「FileExistsError」 のようなPythonにあらかじめ組み込まれている例外クラスのことを 組み込み例外と言います。
(関連記事:Python: 組み込み例外

複数の例外を1つのブロックにまとめる

複数の例外を1つのブロックにまとめることもできます。 その場合は()丸括弧で括り、カンマで区切ります。

except (FileNotFound, FileExistsError):
	処理

エラー情報を出力する

例外の情報を出力する場合は、次のように例外クラス名の後に as 変数と記述すると、 変数を使った情報出力ができます。

except Exception as e:
	print(e)  #エラー情報出力

上で指定している「Exception」はシステム終了以外のエラーを全て拾ってくれます。 想定外のエラーを拾いたい場合は exceptの後に「Exception」を指定して、 エラー情報を出力するとデバッグに役立ちます。

Python