try {
doSomething()
doSomethingElse()
}
catch(Exception e) {}
如果doSomething()
抛出异常,doSomethingElse()
会被执行吗?如果没有,有没有办法让它被执行(但是如果doSomethingElse
抛出相同的异常,仍然会捕获它)?
答案 0 :(得分:5)
不,控制跳转到catch子句。
这是你可以轻易自己测试的东西......
public void doSomethingThatThrowsAnException() throws Exception {
throw new Exception();
}
try {
System.out.println("Before");
doSomethingThatThrowsAnException();
System.out.println("After");
} catch(Exception e) {
System.out.println("Caught");
}
...打印
Before
Caught
答案 1 :(得分:0)
doSomethingElse()
中抛出异常,则不会执行 doSomething()
。如果在try
块中抛出异常,则接下来执行catch
块。无论是否引发异常,finally
块都将始终执行,并且通常用于清理资源。