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