2022-12-23

一、異常體系樹(shù)

image.png

二、Error錯(cuò)誤

描述的是錯(cuò)誤,比如主板燒壞了、網(wǎng)絡(luò)斷了等程序員無(wú)法處理的問(wèn)題

三、Exception異常

描述的是程序上的問(wèn)題,程序員可以通過(guò)嚴(yán)謹(jǐn)?shù)木幋a習(xí)慣和處理,防止異常的發(fā)生

四、檢查性異常

需要指出,檢查性異常雖然是在編碼過(guò)程中報(bào)紅,但是不是語(yǔ)法錯(cuò)誤,需要處理

五、運(yùn)行時(shí)異常

顧名思義,程序編碼過(guò)程中不會(huì)提示,需要到運(yùn)行后才能看到

六、處理異常的方式

1、在方法體中處理
try catch
2、在方法聲明處處理
throws

七、try catch

1、try catch處理時(shí),異常在自己方法內(nèi)部就被處理了,調(diào)用這個(gè)方法的地方壓根感知不到異常的存在
2、try后邊可以接很多catch,要求不能重復(fù)、子類(lèi)異常要寫(xiě)到父類(lèi)異常前邊
3、建議最后放一個(gè)Exception用于兜底
4、執(zhí)行的時(shí)候,會(huì)從上到下選符合異常的類(lèi)型,找到后進(jìn)去執(zhí)行對(duì)應(yīng)的catch塊中的內(nèi)容

八、throws

1、throws處理時(shí),誰(shuí)調(diào)用throws所在的方法,誰(shuí)就會(huì)感知到異常的存在,因此也需要處理,可以選擇try catch或者是throws,當(dāng)然,選擇throws,下一個(gè)調(diào)用它的方法,也需要處理
2、一般認(rèn)為throws是一種不太負(fù)責(zé)的處理方式,因?yàn)橄喈?dāng)于自己沒(méi)處理,而把異常拋出給了調(diào)用它的方法,因此在主方法中不建議throws,這會(huì)把異常拋給jvm,建議在主方法中就try catch

九、異常發(fā)生時(shí)jvm的作用

異常發(fā)生前語(yǔ)句正常執(zhí)行,當(dāng)異常發(fā)生,jvm會(huì)自動(dòng)拋出一個(gè)對(duì)應(yīng)類(lèi)型的異常對(duì)象并打印異常信息,同時(shí)停止執(zhí)行程序,這樣做是為了系統(tǒng)安全因此異常后的語(yǔ)句不會(huì)執(zhí)行

十、try catch的幾種狀態(tài)

try{
①
System.out.println(1/0);
②
}catch(Exception e){
③
}
④

異常種類(lèi)對(duì),①③④可以執(zhí)行

try{
①
System.out.println(1/0);
②
}catch(IndexOutOfBoundsException e){
③
}
④

異常種類(lèi)不對(duì),只有①

try{
①
System.out.println(1/0);
②
}catch(IndexOutOfBoundsException e){
③
}finally{
⑤
}
④
try{
①
System.out.println(1/0);
②
}catch(Exception e){
③
}finally{
⑤
}
④

finally塊不論異常種類(lèi)對(duì)不對(duì)都會(huì)被執(zhí)行,因此finally經(jīng)常應(yīng)用于,程序執(zhí)行后必要的操作,比如資源釋放
也可以不寫(xiě)catch,try后直接跟finally,比如:

try{
①
System.out.println(1/0);
②
}finally{
⑤
}
④

十一、Exception常用方法

構(gòu)造方法
getCause()
getMessage()
getStackTrace()
printStackTrace()

十二、

final、finally、fianlize區(qū)別
fianl可以修飾量、方法、類(lèi)
finally 異常處理塊中最后總要被執(zhí)行的
finalize 垃圾回收機(jī)制

十三、throw

手動(dòng)引發(fā)異常
throw 挑事
throws 平事

十四、自定義異常

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Day16 List 的子類(lèi)ArrayList,Vector,LinkedLisArrayList用法跟List相...
    找到目標(biāo)的禿頭少年閱讀 379評(píng)論 0 0
  • /*承認(rèn)差距,沉心靜氣……(筆者最近就要找工作了,java的框架之類(lèi)的還沒(méi)學(xué)好,最近可能更的不及時(shí)。忙完這陣子我會(huì)...
    panda_Hi閱讀 780評(píng)論 1 1
  • 異常處理機(jī)制-Exception 異常類(lèi)在java.lang包中。 拋出異常應(yīng)該使用的關(guān)鍵字是throw. 1.異...
    可樂(lè)W閱讀 538評(píng)論 0 0
  • 關(guān)于類(lèi)實(shí)現(xiàn)接口正確的有(BC)A. 一個(gè)類(lèi)只能實(shí)現(xiàn)一個(gè)接口B. 一個(gè)類(lèi)可以實(shí)現(xiàn)多個(gè)接口C. 必須重寫(xiě)接口中所有的函...
    遼A丶孫悟空閱讀 963評(píng)論 1 12
  • 一年又一年,字節(jié)跳動(dòng) Lark(飛書(shū)) 研發(fā)團(tuán)隊(duì)又雙叒叕開(kāi)始招新生啦!【內(nèi)推碼】:GTPUVBA【內(nèi)推鏈接】:ht...
    盧卡斯嗶嗶嗶閱讀 376評(píng)論 0 1

友情鏈接更多精彩內(nèi)容