1. ホーム
  2. python

[解決済み] なぜPythonでは "finally "節が必要なのでしょうか?

2022-03-22 14:04:22

質問

なぜ finallytry...except...finally ステートメントを使用します。私の意見では、このコードブロックは

try:
    run_code1()
except TypeError:
    run_code2()
other_code()

を使っているのは、これと同じです。 finally :

try:
    run_code1()
except TypeError:
    run_code2()
finally:
    other_code()

何か見逃していませんか?

解決方法は?

早く帰ると差が出る。

try:
    run_code1()
except TypeError:
    run_code2()
    return None   # The finally block is run before the method returns
finally:
    other_code()

これと比較してください。

try:
    run_code1()
except TypeError:
    run_code2()
    return None   

other_code()  # This doesn't get run if there's an exception.

その他、差異が生じやすい状況

  • exceptブロックの内部で例外が発生した場合。
  • で例外が発生した場合 run_code1() が、それは TypeError .
  • などの他の制御フロー文 continuebreak ステートメントを使用します。