關(guān)注微信公眾號(hào)
創(chuàng)頭條企服版APP
廣州Java學(xué)習(xí)筆記:Java異常知識(shí)點(diǎn)匯總,下面和千鋒廣州小編一起來(lái)看看吧。

異常知識(shí)點(diǎn):
一:異常處理機(jī)制
異常是指使運(yùn)行的程序中斷或者停止的的事件,這些事件通常是由硬件或者程序邏輯不當(dāng)引起的,對(duì)這些事件的捕獲和處理可以增強(qiáng)代碼的健壯性。
二:異常的分類
在Java里異常可以分為錯(cuò)誤和異常,錯(cuò)誤是由于java虛擬機(jī)或者硬件出錯(cuò)導(dǎo)致的,這些大都是人為不可控的,異常一般是由于代碼邏輯引起的,我們可以對(duì)其進(jìn)行捕獲并進(jìn)行處理,無(wú)特殊說(shuō)明,異常以后指第二類。異常又可分為檢查異常和非檢查異常,也可分為非運(yùn)行時(shí)異常和運(yùn)行時(shí)異常。檢查異常和非運(yùn)行時(shí)異常是指在編譯前就需要捕獲和處理的異常,比如FileNotFindException,EOFException。非檢查異常和運(yùn)行時(shí)異常在編譯期間不需要對(duì)其進(jìn)行捕獲處理,但是在運(yùn)行時(shí)可產(chǎn)生,比如空指針異常,類未找到異常,非法參數(shù)異常,數(shù)組越界異常等。
三:異常的層級(jí)關(guān)系
Throwable是所有異常的父類,包括Error。在Throwable下有Error,Exception兩個(gè)子類,Error就是指之前說(shuō)的錯(cuò)誤,Exception就是說(shuō)的異常在它的子類里又分為運(yùn)行時(shí)異常(非檢查異常)和非運(yùn)行時(shí)異常(檢查異常)。非運(yùn)行異常又有一個(gè)統(tǒng)一的父類叫RunTimeException。需要注意的是,當(dāng)自定義異常的時(shí)候,如果需要運(yùn)行時(shí)異常,那么只能繼承RunTimeException,而通過繼承Throwable和Exception產(chǎn)生的自定義異常都是檢查異常,因?yàn)樵趖hrow 的時(shí)候都需要對(duì)其進(jìn)行捕獲處理。
四:異常里的關(guān)鍵字
異常機(jī)制里有5大關(guān)鍵字:try catch finnaly throw throws
try:它后面是一個(gè)代碼塊,代碼塊里是可能發(fā)生異常的代碼。
catch:它后面是可能發(fā)生異常的類型以及異常發(fā)生后需要做的處理
finally:后面是一個(gè)代碼塊,主要是異常發(fā)生時(shí)資源釋放問題
throws:出現(xiàn)在函數(shù)頭,用來(lái)標(biāo)注拋出異常的類型
throw: 位于函數(shù)代碼塊里,用于在一定條件下拋出什么異常
五:自定義異常
自定義異常分為自定義非檢查異常(運(yùn)行時(shí)異常)和自定義檢查異常(非運(yùn)行時(shí)異常)。只有繼承RuntimeException的自定義異常是非檢查異常(運(yùn)行時(shí)異常),其余的都是檢查異常(非運(yùn)行時(shí)異常)。使用throw拋出自定義非檢查異常(運(yùn)行時(shí)異常)時(shí)不需要進(jìn)行try{}catch(){}或者throws處理,但是使用throw拋出自定義檢查異常(非運(yùn)行時(shí)異常)時(shí)一定要進(jìn)行try{}catch(){}或者throws處理,否則編譯無(wú)法通過。
自定義異常一般都是重寫自定義異常類的構(gòu)造函數(shù),然后通過throw關(guān)鍵字拋出該異常
如果你對(duì)Java開發(fā)感興趣,可以來(lái)千鋒廣州校區(qū)免費(fèi)試聽,開啟你的編程之旅。
2022-04-13 廣州千鋒教育發(fā)布了 《如何甄別廣州Java培訓(xùn)機(jī)構(gòu)哪一家比較好?》的文章
2021-11-22 廣州千鋒教育發(fā)布了 《廣州HTML5開發(fā)培訓(xùn)哪家靠譜?前端職責(zé)是什么?》的文章
2021-11-22 廣州千鋒教育發(fā)布了 《廣州學(xué)Java好找工作嗎?自學(xué)和培訓(xùn)的區(qū)別在哪?》的文章
2021-11-22 廣州千鋒教育發(fā)布了 《如何選擇好廣州Web前端培訓(xùn)機(jī)構(gòu)?給你3點(diǎn)建議》的文章
2021-11-19 廣州千鋒教育發(fā)布了 《廣州Java學(xué)習(xí):沒有基礎(chǔ)該如何學(xué)習(xí)Java?》的文章