3 回答

慕標琳琳
TA貢獻1830條經驗 獲得超9個贊
來自Sun教程
注意:如果在執行try或catch代碼時JVM退出,則finally塊可能無法執行。同樣,如果執行try或catch代碼的線程被中斷或終止,則即使應用程序作為一個整體繼續,finally塊也可能無法執行。
我不知道finally塊不會執行的任何其他方式......

HUWWW
TA貢獻1874條經驗 獲得超12個贊
System.exit關閉虛擬機。
終止當前運行的Java虛擬機。該參數用作狀態代碼; 按照慣例,非零狀態代碼表示異常終止。
此方法exit在類中調用該方法Runtime。此方法永遠不會正常返回。
try {
System.out.println("hello");
System.exit(0);
}
finally {
System.out.println("bye");
} // try-finally
“bye”不會在上面的代碼中打印出來。

慕斯709654
TA貢獻1840條經驗 獲得超5個贊
只是為了擴展其他人所說的內容,任何不會導致JVM退出的事情都將導致finally塊。所以方法如下:
public static int Stupid() {
try {
return 0;
}
finally {
return 1;
}
}
會奇怪地編譯并返回1。
添加回答
舉報
0/150
提交
取消