W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
是的. finally 模塊會(huì)先執(zhí)行再 return.
那就不會(huì)了. System.exit (0) 時(shí). 會(huì)立馬跳出程序.
特殊情況就是里面加 return
舉個(gè)例子去理解
public int getNumber() {
int a = 0;
try {
String s = "t"; ------------------------(1)
a = Integer.parseInt(s);-----------(2)
return a;
} catch (NumberFormatException e) {
a = 1;-----------------------------------(3)
return a;-------------------------------(4)
} finally {
a = 2;-----------------------------------(5)
}
}
1、程序中標(biāo)記的代碼的執(zhí)行順序? 2、改程序的最后返回值(外部調(diào)用時(shí))?
程序按順序從上到下執(zhí)行到(2),字符"t"轉(zhuǎn)換成整數(shù)失敗,產(chǎn)生異常并被捕獲, 于是對(duì)a賦值成1,并將此值作為此方法的返回值(可以這么認(rèn)為,該方法有一個(gè)存放返回值的空間,此時(shí)將1放在此處)。由于存在finally塊,在返回前將該方法的內(nèi)部變量a修改成2。 所以程序?qū)礃?biāo)記的順序執(zhí)行,外部調(diào)用該方法時(shí)得到的結(jié)果是1+
先執(zhí)行try或catch里里面的代碼,然后再執(zhí)行finally,再執(zhí)行try或catch里面的return.
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: