当try尝试使用finally而不是catch以及它如何处理时会发生什么?

Kri*_*hna 5 java exception-handling

程序员在没有catch的情况下使用try块

像这样

    PersistenceManager pm = PMF.get().getPersistenceManager();
    try {
        pm.makePersistent(c);
    } finally {
        pm.close();
    }
Run Code Online (Sandbox Code Playgroud)

异常会发生什么以及以后可能会如何处理?

我尝试从互联网上学习,但没有明确的结果......

gio*_*shc 1

当您不指定catch块时,您基本上将处理异常的责任转移给方法的调用者。

因此,如果您的方法没有捕获该try块中的一个或多个异常,并且在您的方法块中引发了异常,则该异常将被抛出回调用者。

finally块确保如果try块中发生不良情况,那么至少您将有机会在异常被抛回调用者之前关闭/释放任何相关资源。