異常
這是我老師的喜好:就是說一上來就拿一張圖給大家看看,過過癮-_-
這是一張:
異常分類圖

來,這里還有一張帶中文的常見異常截圖!!!

1:先來說說什么是異常吧:
其實(shí)就是"阻止當(dāng)前方法或作用域繼續(xù)執(zhí)行的問題"稱作異常.
異常又分為兩種:①編譯時(shí)異常 ②運(yùn)行時(shí)異常.
就先說"編譯時(shí)異常"吧!!!!
也就是在代碼還未運(yùn)行,編譯的代碼就爆出語法或其他的異常就稱之為編譯時(shí)異常;
再說"運(yùn)行時(shí)異常"!!!
和編譯時(shí)異常剛剛相反,也就是在代碼已經(jīng)運(yùn)行,程序運(yùn)行不了,從而爆出的異常;
2:Try-catch-finally之中的相關(guān)問題!!(摘抄)
情況1:
try{} catch(){}finally{} return;
顯然程序按順序執(zhí)行。
情況2:
try{ return; }catch(){} finally{} return;
程序執(zhí)行try塊中return之前(包括return語句中的表達(dá)式運(yùn)算)代碼;
再執(zhí)行finally塊,最后執(zhí)行try中return;
finally塊之后的語句return,因?yàn)槌绦蛟趖ry中已經(jīng)return所以不再執(zhí)行。
情況3:
try{ } catch(){return;} finally{} return;
程序先執(zhí)行try,如果遇到異常執(zhí)行catch塊,
有異常:則執(zhí)行catch中return之前(包括return語句中的表達(dá)式運(yùn)算)代碼,再執(zhí)行finally語句中全部代碼,
最后執(zhí)行catch塊中return. finally之后也就是4處的代碼不再執(zhí)行。
無異常:執(zhí)行完try再finally再return.
情況4:
try{ return; }catch(){} finally{return;}
程序執(zhí)行try塊中return之前(包括return語句中的表達(dá)式運(yùn)算)代碼;
再執(zhí)行finally塊,因?yàn)閒inally塊中有return所以提前退出。
情況5:
try{} catch(){return;}finally{return;}
程序執(zhí)行catch塊中return之前(包括return語句中的表達(dá)式運(yùn)算)代碼;
再執(zhí)行finally塊,因?yàn)閒inally塊中有return所以提前退出。
情況6:
try{ return;}catch(){return;} finally{return;}
程序執(zhí)行try塊中return之前(包括return語句中的表達(dá)式運(yùn)算)代碼;
有異常:執(zhí)行catch塊中return之前(包括return語句中的表達(dá)式運(yùn)算)代碼;
則再執(zhí)行finally塊,因?yàn)閒inally塊中有return所以提前退出。
無異常:則再執(zhí)行finally塊,因?yàn)閒inally塊中有return所以提前退出。
(不管有木有出現(xiàn)異常,finally塊中代碼都會(huì)執(zhí)行,但是,,,,大家看到這個(gè)但是了嗎!
好接著說,但是當(dāng)catach塊中調(diào)用了System.exit(1),那么finally塊將不再執(zhí)行;
finally塊中最好不要有return,否則程序會(huì)提前退出)
新聞熱點(diǎn)
疑難解答
圖片精選