Java 为什么最后block不';不执行?

Java 为什么最后block不';不执行?,java,finally,Java,Finally,为什么此代码的最后一个块不执行?它只打印1。在System.exit(0)之后,最后不执行块 void method2() { try { System.out.println("1"); System.exit(0); } finally { System.out.println("3"); } } System.exit(0)实际上会完全停止程序的执行。删除System.exit,因为您实际上并没有试图退出那里

为什么此代码的最后一个块不执行?它只打印1。在
System.exit(0)之后,最后不执行块

    void method2() {
    try {
        System.out.println("1");
        System.exit(0);
    } finally {
        System.out.println("3");
    }
}

System.exit(0)实际上会完全停止程序的执行。删除System.exit,因为您实际上并没有试图退出那里的代码

删除SYSTEM.EXIT,因为它会退出整个程序,而不管后面是什么。虽然正在尝试,但它仍然会进入代码块:)

系统。退出(0)
在执行
最后的
块之前终止运行时。将其移动到
系统.out之后的
最后

System.exit()关闭虚拟机。在此之后,唯一可以执行的是使用
运行时创建的关闭挂钩。addShutdownHook(线程)

应用程序终止后,代码不会继续执行。你为什么不这么想?