爲什麼最後這段代碼不會執行?它只打印1.在System.exit(0);
之後終於阻止不執行?爲什麼finally塊不能執行?
void method2() {
try {
System.out.println("1");
System.exit(0);
} finally {
System.out.println("3");
}
}
爲什麼最後這段代碼不會執行?它只打印1.在System.exit(0);
之後終於阻止不執行?爲什麼finally塊不能執行?
void method2() {
try {
System.out.println("1");
System.exit(0);
} finally {
System.out.println("3");
}
}
System.exit(0)實際上完全停止了程序的執行。刪除System.exit,因爲您並未嘗試退出您的代碼。
刪除SYSTEM.EXIT,因爲它會退出整個程序,而不管後面有什麼。儘管它仍然在嘗試它仍然進入代碼塊:)
System.exit(0)
在finally
塊甚至被執行之前終止運行時間。在System.out
之後將其移至finally
區塊。
System.exit();
關閉虛擬機。在此之後唯一可以執行的操作是使用Runtime.addShutdownHook(Thread)
創建的關閉掛鉤。
閱讀文檔... – redFIVE
代碼在應用程序終止後不會繼續執行。你爲什麼會這麼想? – David