以下のコードでは、キャッチしていArithmeticException
ませんが、例外は自動的に処理され、finally
Block により、main()
メソッドの内容は正常に実行されます。一方、finally から return ステートメントを削除し、デモを void を返すようにすると、finally
ブロック スローを実行した後のプログラムはMainThread
Exception
..なぜそうなるのでしょうか?
public class FinallyDemo {
int demo() {
try {
int a=5/0;
}
finally {
System.out.println("Finally Executed");
return 10;
}
}
public static void main(String s[]) {
int a=new FinallyDemo().demo();
System.out.println("Exception Handled");
}
}