広告スペース(バナー)
🐍Python レッスン
基本文法の基礎8
データ構造とオブジェクト指向8
構文の基本を深める9
関数とデータ構造の応用9
アルゴリズムとテストの基礎8
文字列・数値操作の応用8
実務で役立つ機能8
アルゴリズム練習問題10
レッスン 51 / 69

try/except/finallyで後片付け処理をしよう

このレッスンでは、try/except/finallyを使った後片付け処理の書き方を学び、エラーの有無にかかわらず確実に実行したい処理を書けるようになることを目標にします。「Python finally 使い方」で調べている方向けです。

finallyブロックは、例外が発生してもしなくても必ず実行される後片付け用のブロックです。「エラーが起きても起きなくても、最後にこの処理だけは必ず行いたい」というときに使います。ファイルを閉じる、通信を終了するといった後片付けの処理は、エラーの有無にかかわらず確実に実行される必要があります。

サンプルコードでは、divide関数の中でtryによる計算・exceptによるエラー処理に加えて、finallyで「計算処理を終了します」というメッセージを必ず表示しています。正常に割り算できた場合とエラーになった場合の両方で、このfinallyのメッセージが表示されることを確認してみましょう。

初心者がよくつまずくのが、finallyの中でreturnを書いてしまうケースです。finallyの中でreturnを書くと、try側の戻り値が上書きされてしまう点には注意が必要で、意図しない挙動を招くことがあります。finallyはあくまで後片付けのための場所と考えましょう。

データベース接続やネットワーク通信など、リソースを確実に解放したい処理でfinallyはよく使われます。実際の開発現場では、通信の後始末やファイルのクローズなど、成功・失敗にかかわらず必要な処理をfinallyにまとめておくことで、コードの重複を防げます。

Python
OUTPUT / 実行結果

💡 初回実行時はPythonエンジンの読み込みに数秒かかります。

🎯
ここまでできればゴール達成!
エラーが起きても必ず後片付けが行われる、安全な処理が書けるようになります。
広告スペース(バナー)
広告スペース(記事内)