2011-02-10 9 views

答えて

17

これはfinallyブロックの全体のポイントなので、VM自体が突然シャットダウンされない限り、tryブロックをそのままにします。

通常、finallyブロックがリソースのクリーンアップに使用されます。tryブロックの間に返されただけなので、ファイルハンドルを開いたままにしたくない場合はありますか?今度はは、return文の直前にそのクリーンアップコードを置くことができますが、コードが例外をスローした場合にはクリーンアップされません。 finallyを指定すると、クリーンアップコードはを実行しますが、ブロックを離れるときは通常になります。これは一般的に必要なものです。

詳しくは、JLS section 14.20.2を参照してください。また、すべてのパスにブロック実行finallyがどのように関わっているかに注意してください。

3

最後に常にが実行されます、どんなにtryブロック(など仕上げ、リターン、例外、失敗)で何が起こりますか。

このコードを実行したくない場合は、try/catch/finally文の後に置くことができます。

finallyは何のためにあるのかを正確だ
+1

JVMが実行されていない場合を除いて;-) JVMが強制終了されたり、コンピュータの電源が切れた場合 –

+0

合意しましたが、NOコードが実行されることになります。これは明らかです...;) –

0

tryブロックが残っているとき内部のコードがSystem.exit()または外部の理由を経由してシャットダウンするJVMを除く)どんなに、実行されません。