Java 尝试 Catch Final 块没有 Catch

我正在审查一些新代码。该程序有一个尝试和一个最终块。由于 catch 块被排除在外,因此如果 try 块遇到异常或任何可抛出的内容,它是如何工作的?它只是直接进入最后的块吗?


答案 1

如果 try 块中的任何代码可以引发已检查的异常,则必须将其显示在方法签名的 throw 子句中。如果引发未经检查的异常,则会将其从方法中冒出。

无论是否引发异常,最终块始终执行。


答案 2

关于 /: final 将始终执行,除非tryfinally

  • System.exit()被调用。
  • JVM 崩溃。
  • 该块永无止境(例如,无限循环)。try{}

推荐