Java面試題之Java 的異常處理

? ?1. Java中異常分為哪些種類?

? ? ? ? ? ? (1)?編譯時(shí)異常,也叫強(qiáng)制性異常,和CheckedException

? ? ? ? ? ? (2)運(yùn)行時(shí)異常,也叫沒強(qiáng)制性異常和RuntimeException

? ?2.error和exception的區(qū)別?

????????error一般是指在虛擬機(jī)相關(guān)的問題,如系統(tǒng)崩潰,虛擬機(jī)錯(cuò)誤,內(nèi)存空間不足,方法調(diào)用棧溢出等,這類錯(cuò)誤導(dǎo)致應(yīng)用程序中斷,程序自身是無法恢復(fù)的,這時(shí)候,我們一般建議終止程序

Exception類表示程序可以處理的異常,可以捕獲且可能恢復(fù),遇到這類異常,應(yīng)該盡可能的處理異常,,是程序恢復(fù)運(yùn)行,而不是隨意終止程序


3.請寫出你最常見的幾個(gè)RuntimeException????????

? ?1.java.lang.NullPointerException?空指針異常

? ?2.java.lang.ClassNotFoundException?找不到指定的類

? 3.java.lang.NumberFormatException?字符串轉(zhuǎn)換為數(shù)字異常

? ?4.java.lang.IndexOutOfBoundsException?數(shù)組角標(biāo)越界異常

? ?5.java.lang.ClassCastException? ?數(shù)據(jù)類型轉(zhuǎn)換異常

? ?6.SQLException SQL異常

? ?7.java.lang.IllegalArgumentException?方法傳遞參數(shù)錯(cuò)誤

4.throw和throws的區(qū)別

? ? throw?語句用在方法體內(nèi),表示拋出異常,它拋出的是異常實(shí)例,所以執(zhí)行throw一定拋出異常

? throws:用在方法聲明后,如果有異常進(jìn)行拋出,沒有異常不處理,拋出的是某種類型的異常

5.final、finally、finalize的區(qū)別?

? ? ? ? ? ? final:是用來,聲明屬性,方法和類,分別表示,屬性不可變,類不可繼承,方法不能覆蓋

? ? ? ? ? ? finally:異常處理語句結(jié)構(gòu)的一部分,表示總能執(zhí)行

? ? ? ? ? ? finalize:Object類的一個(gè)方法,用來垃圾回收的(這里?我是這么理解的)

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

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

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