最终块是否始终运行?

2022-08-31 08:50:56

是否有任何条件最终可能无法在java中运行?谢谢。


答案 1

来自太阳教程

注: 如果 JVM 在执行 try 或 catch 代码时退出,则 finally 块可能不会执行。同样,如果执行 try 或 catch 代码的线程被中断或终止,则即使应用程序作为一个整体继续,finally 块也可能不会执行。

我不知道最终块不会执行的任何其他方式...


答案 2

系统退出关闭虚拟机。

终止当前正在运行的 Java 虚拟机。该参数用作状态代码;按照惯例,非零状态代码表示异常终止。

此方法调用类 中的方法。此方法永远不会正常返回。exitRuntime

    try {
        System.out.println("hello");
        System.exit(0);
    }
    finally {
        System.out.println("bye");
    } // try-finally

“再见”在上面的代码中没有打印出来。


推荐