關(guān)于異常聲明
throws關(guān)鍵字聲明方法可能出現(xiàn)的異常,客戶(hù)端代碼在調(diào)用該方法時(shí)篷扩,可以?huà)伋雎暶鞯漠惓W屍渌蛻?hù)端代碼去處理該有異常寻歧,也可以利用try-catch去處理可能的異常。
關(guān)于方法調(diào)用棧
在方法調(diào)用的過(guò)程中嗡髓,首先被調(diào)用的方法會(huì)先進(jìn)棧,先進(jìn)棧的會(huì)靠近棧底收津。當(dāng)某個(gè)某個(gè)方法產(chǎn)生異常時(shí)饿这,我們可以通過(guò)該異常的getStackTrace方法或者棧軌跡。
重新拋出異常
重新拋出的異常只能被其上一級(jí)環(huán)境的異常處理程序捕獲并處理撞秋。
異常分類(lèi)
運(yùn)行時(shí)異常:該異常運(yùn)行期才會(huì)被發(fā)現(xiàn)长捧,我們可以不必處理該類(lèi)異常
編譯異常:此類(lèi)異常編譯器就可以確定,必須拋出或者處理該類(lèi)異常吻贿,否則編譯器會(huì)報(bào)錯(cuò)
異常處理執(zhí)行流程
1.try中的監(jiān)控區(qū)域沒(méi)有異常時(shí)串结,跳過(guò)catch塊,執(zhí)行finally塊,最后執(zhí)行finally后的語(yǔ)句
2.try中的監(jiān)控區(qū)域產(chǎn)生異常且catch塊中沒(méi)有對(duì)應(yīng)的異常類(lèi)肌割,try中異常語(yǔ)句后的語(yǔ)句不會(huì)執(zhí)行赵抢,產(chǎn)生異常后執(zhí)行finally中的語(yǔ)句,并且finally后的語(yǔ)句不會(huì)執(zhí)行
3.try中產(chǎn)生異常且catch中有對(duì)應(yīng)的異常類(lèi)声功,產(chǎn)生異常后,執(zhí)行catch中對(duì)應(yīng)的異常處理宠叼,然后執(zhí)行finally中的語(yǔ)句先巴,最后執(zhí)行finally后面的語(yǔ)句
構(gòu)造器中使用try catch
原則:在創(chuàng)建需要清理的對(duì)象之后,立即進(jìn)入trycatchfinally塊冒冬。