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


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

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

不,控件跳转到 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

如果在doSomething()中抛出异常,则不会执行doSomethingElse()。如果在try块中引发异常,则接下来执行catch块。无论是否引发异常,finally块都将始终执行,通常用于清理资源。

最新更新