更新時(shí)間:2019-09-03 15:13:00 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽2530次
異常分類
異常體系分成:checked(編譯)異常和runtime(運(yùn)行)和異常。
劃分規(guī)則是,RuntimeException和其子類屬于運(yùn)行異常,異常除了運(yùn)行異常,其他都是編譯異常。
1.1.運(yùn)行異常(了解)
runtime異常,顧名思義在編譯時(shí)期不被檢測(cè),只有在運(yùn)行時(shí)期才會(huì)被檢查出來(lái)。
運(yùn)行異常可以不使用try...catch處理,但一旦出現(xiàn)異常就將由JVM處理(打印堆棧信息)。RuntimeException(運(yùn)行時(shí)異常)通常是指因設(shè)計(jì)或?qū)崿F(xiàn)方式不當(dāng)而導(dǎo)致的問(wèn)題。程序員小心謹(jǐn)慎是可以避免的異常。如:事先判斷對(duì)象是否為null就可以避免NullPointerException異常,事先檢查除數(shù)不為0就可以避免ArithmeticException異常。
運(yùn)行異常特點(diǎn):
在編譯階段,Java編譯器檢查不出來(lái)。一般的,程序可以不用使用try-catch和throws處理運(yùn)行異常。
1.2.編譯異常(了解)
編譯被檢查異常,顧名思義就是在編譯時(shí)期就會(huì)被檢測(cè)到的異常。除了RuntimeException以及子類以外,其他的Exception及其子類都是編譯異常,有時(shí)候也稱之為非runtime異常。
特點(diǎn):
在編譯階段,Java編譯器會(huì)檢查出異常,也就說(shuō)程序中一旦出現(xiàn)這類異常,要么使用try-catch語(yǔ)句捕獲,要么使用throws語(yǔ)句聲明拋出它,否則編譯就不會(huì)通過(guò)。
簡(jiǎn)而言之:程序要求必須處理編譯異常,使用try-cathc或throws處理。
1.3.自定義異常類(掌握)
一個(gè)異常類只表示某一種特定的異常類型,在項(xiàng)目開(kāi)發(fā)中,可能會(huì)出現(xiàn)特定的邏輯錯(cuò)誤,此時(shí)開(kāi)發(fā)者可以對(duì)這些錯(cuò)誤進(jìn)行封裝成異常。比如我們可以定義一個(gè)LogicException用于表示業(yè)務(wù)邏輯異常。
自定義異常的兩種方式,可以繼承Exception類或RuntimeException類。一般推薦繼承RuntimeException類。
繼承異常類之后,一般的,需要提供無(wú)參構(gòu)造方法和帶一個(gè)String類型參數(shù)的構(gòu)造器。
定義一個(gè)客戶類,表示一個(gè)客戶。
定義一個(gè)客戶異常,專門表示拋出給用戶看的異常類型。
測(cè)試類
本系列教程為動(dòng)力節(jié)點(diǎn)Java基礎(chǔ)內(nèi)部教材,若要獲得最好的學(xué)習(xí)效果,需要配合對(duì)應(yīng)教學(xué)視頻一起學(xué)習(xí)。視頻教程:http://m.dabaquan.cn/video.html,希望可以幫助到大家,學(xué)習(xí)中遇到問(wèn)題,可登錄官網(wǎng)咨詢?cè)诰€客服老師。
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743