[Python]finally節の使用

try/exceptの概念を理解したところで、finally節を追加することでさらに強力なエラー処理を行うことができます。finally節は、tryブロックとexceptブロックの後に配置します。そして、このfinally節内のコードは例外が発生しようがしまいが、必ず実行されます。

基本的な構文は以下の通りです。

try:
    # 例外が発生する可能性のあるコード
except 例外の種類:
    # 例外が発生した場合に実行するコード
finally:
    # 例外の有無に関わらず、最終的に必ず実行するコード

例えば、データベースとの接続を開いて操作を行うコードがあるとしましょう。何らかの理由で操作中にエラーが発生した場合でも、接続を必ず閉じる必要があります。これを保証するためにfinally節を使います。

try:
    db_connection = open_database_connection()
    # データベースへの何らかの操作
except DatabaseError:
    print("An error occurred")
finally:
    db_connection.close()  # これはエラーの有無に関わらず必ず実行されます

この例では、データベースへの接続を開いて何らかの操作を行います。もしDatabaseErrorが発生すれば、エラーメッセージを表示します。そして、操作が成功しようが失敗しようが、finally節のdb_connection.close()が実行され、データベース接続は確実に閉じられます。

finally節は、リソースのクリーンアップや後始末など、例外の有無にかかわらず実行する必要があるコードに対して非常に便利です。