在java中,如果抛出异常,是否继续在try块内执行?

时间:2015-01-20 00:28:30

标签: java exception-handling

try {
    doSomething()
    doSomethingElse()
}
catch(Exception e) {}

如果doSomething()抛出异常,doSomethingElse()会被执行吗?如果没有,有没有办法让它被执行(但是如果doSomethingElse抛出相同的异常,仍然会捕获它)?

2 个答案:

答案 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块都将始终执行,并且通常用于清理资源。