2011-10-19 18 views

答えて

6

はい、

結果はどちらかtryまたはcatchブロックの最後の行になりますが、finallyブロックは常にどんな

+0

'try'ブロックに明示的な' return'文があっても? – Rogach

+2

はい。 [そして最小長に合うこれらの他の文字列] –

+2

'finally'ブロックが実行されない唯一のケースは、' try'または 'catch'ブロック内で' sys.exit() 'が呼び出される場合です。 – axel22

1

はい実行されません。

finallyのポイントは、コードがtryブロックを離れるためにどのようなパスを使用する場合でも、クリーンアップコードが確実に実行されるようにすることです。これは、例外がスローされ捕捉されたとき、およびこのtryブロックによって捕捉されなかった例外がスローされたときに発生します。プログラムの実行を妨げる唯一の問題は、プログラムがtryブロックをまったく残すことができない場合です。その内部の無限ループ、またはこの正常な処理が起こらないようにする何らかの手段、またはその順序の何かによって殺されているプロセスです。プロセスが実際に終了する前にfinallyブロックが実行されるというtryブロックの内部からプロセスを終了しても、私はかなり確信しています。

関連する問題