Java 異常的知識整理
Java 異常
1.繼承關(guān)系
2.Error
程序運(yùn)行時發(fā)生的無法被處理的錯誤,一旦發(fā)生,JVM終止執(zhí)行。
3.Exception
Exception是程序編譯與運(yùn)行時出現(xiàn)的一種錯誤,一旦出現(xiàn),JVM將告知程序員處理。
分為兩種:
運(yùn)行時異常:在運(yùn)行時發(fā)生,RuntimeException類及子類。編譯時不需要處理,發(fā)生在運(yùn)行階段。常見的有NullPointerException\StringIndexOutOfBounds \ClassCastException \ArrayIndexOutOfBounds。
編譯時異常(受查異常):代碼編寫時必須處理的異常,若不處理,編譯無法通過。編譯時異常在編譯代碼階段設(shè)置了處理措施,所以即使發(fā)生異常,可能也不會影響程序的正常運(yùn)行,有些系統(tǒng)因此將編譯時異常視作正常情況處理,比如Spring默認(rèn)發(fā)生
編譯時異常時正常提交。在程序中顯式地拋出異常相當(dāng)于編譯階段必須處理的異常,屬于編譯時異常。常見的有ClassNotFoundException \FileNotFounException\ParseException\SQLException\IOException。
兩種異常劃分的依據(jù)是實(shí)際發(fā)生的概率,JVM將發(fā)生幾率高的異常當(dāng)做受查異常,要求程序員在編寫代碼時處理,而運(yùn)行時異常JVM認(rèn)為發(fā)生幾率很低,不需要程序員處理。
4.try...catch...finally...
用于在方法內(nèi)部捕獲并處理異常。
將可能發(fā)生異常的語句塊放在try后,異常發(fā)生時try語句塊停止執(zhí)行,跳到catch語句塊執(zhí)行,catch語句塊執(zhí)行完畢,將繼續(xù)執(zhí)行catch語句塊后面的代碼。
無論是否發(fā)生異常,finally語句塊都會執(zhí)行,通常將關(guān)閉資源的代碼放在其中。
5.自定義異常
繼承Exception,在指定條件下拋出異常"throw MyException(xxxx)",目的是詳細(xì)地反映程序運(yùn)行狀況。
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關(guān)文章
java項(xiàng)目構(gòu)建Gradle的使用教程
這篇文章主要為大家介紹了java項(xiàng)目構(gòu)建Gradle的使用教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-03-03SpringBoot返回long,前端接收進(jìn)度丟失,@JsonSerialize不生效問題
這篇文章主要介紹了SpringBoot返回long,前端接收進(jìn)度丟失,@JsonSerialize不生效問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-08-08Java中的阻塞隊(duì)列BlockingQueue使用詳解
這篇文章主要介紹了Java中的阻塞隊(duì)列BlockingQueue使用詳解,阻塞隊(duì)列是一種線程安全的數(shù)據(jù)結(jié)構(gòu),用于在多線程環(huán)境下進(jìn)行數(shù)據(jù)交換,它提供了一種阻塞的機(jī)制,當(dāng)隊(duì)列為空時,消費(fèi)者線程將被阻塞,直到隊(duì)列中有數(shù)據(jù)可供消費(fèi),需要的朋友可以參考下2023-10-10Java前后端的JSON傳輸方式(前后端JSON格式轉(zhuǎn)換)
這篇文章主要介紹了Java前后端的JSON傳輸方式(前后端JSON格式轉(zhuǎn)換),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-04-04