在没有捕获的情况下使用finally



我有一个要执行的测试。无论它是通过还是抛出错误,我都想关闭它打开的案例。我在类的顶部有StringtheCase=null;然后在executeText()中,我在打开案例后设置它。

所以我做了这个:

try {
    executeTest(tContext);
} catch (Throwable t) {
    throw t;
} finally {
    if (theCase != null) {
      closeCase(user, theCase);
    }
}

我想知道。我需要接球吗?我仍然希望抛出错误,但首先我希望它关闭这个案例。如果我不抓住它扔,最后会不会不扔?或者它不会被捕获并抛出异常而不执行finally?我终于有点不清楚了。

我需要接球吗?

不,你没有。

事实上,这是有害的,因为如果像那样捕获并抛出Throwable,那么对于某些版本的Java,您将需要将封闭方法声明为throws Throwable。。。等等。(这是Java 8、IIRC中的地址。)

Finally将被执行,无论是否抛出异常,或者是否从catch块重新抛出异常。

相关内容

  • 没有找到相关文章

最新更新