在下面编写的代码中,虽然我没有捕获到ArithmeticException
,但异常会自动处理并使用finally
Block,main()
方法的内容已成功执行。而如果我从 finally 中删除 return 语句并将 demo 设为返回 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");
}
}