Pythonのfinally文の使い方を完全解説!例外が発生しても必ず実行される処理とは
生徒
「Pythonでエラーが出たときでも、必ず動いてほしい処理って書けますか?」
先生
「書けますよ。Pythonにはfinally文という仕組みがあります。」
生徒
「エラーが出ても実行されるんですか?」
先生
「そうです。失敗しても成功しても、最後に必ず実行されるのがfinally文です。」
1. Pythonのfinally文とは?
Pythonのfinally文とは、例外処理の中で必ず最後に実行される処理を書くための仕組みです。プログラムが正常に動いた場合でも、エラーが発生した場合でも、関係なく実行されます。
初心者の方には少し難しく感じるかもしれませんが、finallyは「最後のお片付け係」のような存在だと考えると分かりやすいです。
2. try-except-finallyの基本構造
finally文は、tryとexceptと一緒に使います。まずは全体の形を見てみましょう。
try:
print("処理を開始します")
result = 10 / 0
except:
print("エラーが発生しました")
finally:
print("必ず実行される処理です")
処理を開始します
エラーが発生しました
必ず実行される処理です
この例では、エラーが起きていますが、最後にfinallyの中の処理が実行されています。
3. finallyは「後片付け」
finally文は、日常生活でいうと後片付けのようなものです。料理がうまくいっても失敗しても、最後にはキッチンを片付けますよね。
Pythonでも同じで、処理の結果に関係なく「最後に必ずやること」をfinallyに書きます。これにより、プログラムの動きが安定します。
4. エラーが起きなくても実行される
finally文は、エラーが起きなかった場合でも実行されます。次の例を見てみましょう。
try:
result = 10 / 2
print("計算結果:", result)
except:
print("エラーが起きました")
finally:
print("処理を終了します")
計算結果: 5.0
処理を終了します
このように、成功しても失敗してもfinallyは必ず実行されます。
5. finallyが役立つ場面
finally文は、「途中で止まると困る処理」に向いています。たとえば、画面に「処理終了」と表示したり、使い終わったものを元に戻したりするときです。
初心者の方は、「必ず実行したい表示や後始末」をfinallyに書く、と覚えておくと使いやすくなります。
6. exceptがなくてもfinallyは使える
Pythonでは、exceptを書かずにfinallyだけを使うこともできます。この場合、エラーが起きてもfinallyは実行され、そのあとプログラムは停止します。
try:
print("処理中です")
value = 5 / 0
finally:
print("必ず実行されます")
処理中です
必ず実行されます
この書き方は、「何があっても最後にやりたい処理」があるときに使われます。
7. finallyを使うと安心できる理由
finally文があることで、「途中でエラーが出たらどうしよう」という不安が減ります。プログラムがどんな状態でも、最後に決まった処理が実行されるからです。
Pythonの例外処理の中でも、finallyは安心感を高める仕組みだと言えます。
8. 初心者が覚えておきたいfinallyの考え方
初心者の方は、finallyを「必ず実行される場所」とだけ覚えておけば十分です。難しい使い方を考える必要はありません。
Pythonのfinally文は、エラーが起きてもプログラムを落ち着いて終わらせるための大切な仕組みです。基本を理解することで、より安全なコードが書けるようになります。