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