0

重複の可能性:
finally ブロックは常に実行されますか?

次のシナリオを想像してみましょう。

public void myMethod() throws MyException
  try
  {
     // do something
     // an Exception (for example an individual written MyException which extends 
     // "Exception" is thrown here
  }
  catch (OtherException e)
  {
    // do something
  }
  finally 
  {
    // do something else
  }
}

"MyException" が try ブロックでスローされ、キャッチされない場合、それらは最終的にブロックに到達しますが、正しいですか?

スローされるランタイム例外の場合はどうなるでしょうか? 最終ブロックに到達しますか?

finally ブロックに到達しない場合はありますか?

答えてくれてありがとう:-)

4

1 に答える 1

6

vm がクラッシュしたり、System.exit を呼び出したりしない限り、finally は常に呼び出されます。

于 2012-05-10T10:30:54.113 に答える