Pythonのtry-finally
構文は、例外の有無に関わらずに実行したい処理がある場合に使用します。具体的には、後続の処理に影響がある変数値の設定、処理が完了したことを示すログの表示など、例外の発生有無に関わらず必要な処理が考えられます。
try-finally構文の基本的な形式
try:
# 例外を発生する可能性のある処理
except ExceptionType:
# 例外が発生した場合の処理
finally:
# 例外の有無に関わらず実行される処理
try
ブロック内には、例外を発生する可能性のあるコードを記述します。except
ブロックでは、特定の例外が発生したときの処理を記述します。そして、finally
ブロックでは、例外の有無に関わらず必ず実行される処理を記述します。
実例
以下に、try-finally
構文の使用例を示します。
mylist = [1, 2, 0, 4, 5]
for i in mylist:
rev = 0
try:
rev = 1 / i
except ZeroDivisionError as e:
print('ゼロ除算エラー', e)
else:
print(i , 'の逆数は', rev)
finally:
print('--')
このコードでは、リストmylist
の各要素に対して逆数を計算し、結果を表示しています。try
ブロック内で逆数を計算し、ZeroDivisionError
が発生した場合(つまり、要素が0の場合)はエラーメッセージを表示します。例外が発生しなかった場合、逆数を表示します。そして、finally
ブロックでは、各ループの終了を示す'--'
を表示します。
このように、Pythonのtry-finally
構文を使用すると、例外の有無に関わらず必ず実行したい処理を記述できます。これにより、プログラムの安全性と信頼性を向上させることができます。