一.
-
泛型
二. 異常處理
- try/catch塊的流程控制
try{
//可能有風(fēng)險(xiǎn)的程序,一旦出現(xiàn)異常骂澄,系統(tǒng)自動(dòng)為我們創(chuàng)建一個(gè)異常對(duì)象吓蘑,并拋出
}catch(){
//異常狀況的處理程序
}finally{
//不管有沒有異常都要執(zhí)行的程序
}
1.如果try塊失敗了,拋出異常坟冲,流程馬上會(huì)轉(zhuǎn)移到catch塊磨镶。當(dāng)catch塊完成時(shí),會(huì)執(zhí)行finally部分健提。當(dāng)finally完成時(shí)琳猫,就會(huì)繼續(xù)執(zhí)行其余的部分。
2.如果try塊成功了矩桂,流程會(huì)跳過catch塊并移動(dòng)到finally塊沸移,當(dāng)finally完成時(shí),就會(huì)繼續(xù)執(zhí)行其余的部分侄榴。
3.如果try或catch有return指令雹锣,finally還是會(huì)執(zhí)行,流程會(huì)跳到finally再回到return指令癞蚕。
4.如果有多個(gè)異常蕊爵,可以使用多個(gè)catch來捕獲,catch的順序是從小到大
- 拋出異常 throws
在編寫可能會(huì)拋出異常的方法時(shí)桦山,都必須聲明有異常攒射。當(dāng)特殊情況出現(xiàn)了,自己可以選擇拋出異常恒水。
public void takeRisk() throws BadException{
if(abandonAllHope){
throw new BadException();
}
}
- 自定義異常類: 能夠?自?己定義輸出內(nèi)容 更更快地找到出現(xiàn)問題的位置