- java.lang.Exception:可以進(jìn)行異常處理
- |-----編譯時(shí)異常(checked)
|----IOException
|----FileNotFoundException
|----ClassNotFoundException
- |-----運(yùn)行時(shí)異常(unchecked)
|----NullPointerException 空指針異常
|----ArrayIndexOutOfBoundsException 數(shù)組角標(biāo)越界
|---- StringIndexOutOfBoundsException 字符串角標(biāo)越界
|----ClassCastException
|----NumberFormatException
|----InputMismatchException
|----ArithmeticException 算術(shù)異常
如何看待代碼中的運(yùn)行時(shí)異常和編譯時(shí)異常宽气?
1:使用try-catch-finally處理編譯時(shí)異常随常,是得程序在編譯時(shí)就不再報(bào)錯(cuò),但是運(yùn)行時(shí)仍可能報(bào)錯(cuò)萄涯。相當(dāng)于我們使用try-catch-finally將一個(gè)編譯時(shí)可能出現(xiàn)的異常绪氛,延遲到運(yùn)行時(shí)出現(xiàn)
2:開發(fā)中,由于運(yùn)行時(shí)異常比較常見涝影,所以我們通常就不針對(duì)運(yùn)行時(shí)異常編寫try-catch-finally了枣察。針對(duì)編譯時(shí)異常,我們說一定要考慮異常的處理燃逻。
throw和throws的區(qū)別
1.throw表示拋出一個(gè)異常類的對(duì)象序目,生成異常對(duì)象的過程。聲明在方法體內(nèi)伯襟。(throw是異常對(duì)象的產(chǎn)生時(shí)手動(dòng)生成的一個(gè)異常對(duì)象)
2.throws屬于異常處理的一種方式猿涨,聲明在方法的聲明處。(throws是異常的處理方式之一)