3 回答

TA貢獻(xiàn)1830條經(jīng)驗(yàn) 獲得超9個(gè)贊
來(lái)自Sun教程
注意:如果在執(zhí)行try或catch代碼時(shí)JVM退出,則finally塊可能無(wú)法執(zhí)行。同樣,如果執(zhí)行try或catch代碼的線(xiàn)程被中斷或終止,則即使應(yīng)用程序作為一個(gè)整體繼續(xù),finally塊也可能無(wú)法執(zhí)行。
我不知道finally塊不會(huì)執(zhí)行的任何其他方式......

TA貢獻(xiàn)1874條經(jīng)驗(yàn) 獲得超12個(gè)贊
System.exit關(guān)閉虛擬機(jī)。
終止當(dāng)前運(yùn)行的Java虛擬機(jī)。該參數(shù)用作狀態(tài)代碼; 按照慣例,非零狀態(tài)代碼表示異常終止。
此方法exit在類(lèi)中調(diào)用該方法Runtime。此方法永遠(yuǎn)不會(huì)正常返回。
try {
System.out.println("hello");
System.exit(0);
}
finally {
System.out.println("bye");
} // try-finally
“bye”不會(huì)在上面的代碼中打印出來(lái)。

TA貢獻(xiàn)1840條經(jīng)驗(yàn) 獲得超5個(gè)贊
只是為了擴(kuò)展其他人所說(shuō)的內(nèi)容,任何不會(huì)導(dǎo)致JVM退出的事情都將導(dǎo)致finally塊。所以方法如下:
public static int Stupid() {
try {
return 0;
}
finally {
return 1;
}
}
會(huì)奇怪地編譯并返回1。
添加回答
舉報(bào)