Exception、Error都是派生于Thrwable(如下圖)。
Error層次結(jié)構(gòu)描述了java運(yùn)行時(shí)系統(tǒng)的內(nèi)部錯(cuò)誤和資源耗盡錯(cuò)誤。大多數(shù)錯(cuò)誤與代碼編寫者執(zhí)行的操作無關(guān),而表示代碼運(yùn)行時(shí) JVM(Java 虛擬機(jī))出現(xiàn)的問題。應(yīng)用程序不應(yīng)該拋出這種類型的對(duì)象。
Exceprion這個(gè)層次結(jié)構(gòu)又分解為連個(gè)分支:一個(gè)分支派生于RuntimeException;另一個(gè)分支包含其他異常。劃分兩個(gè)分支的規(guī)則是:由程序錯(cuò)誤導(dǎo)致的異常屬于RuntimeException;而程序本身沒有沒有問題,但由于像I/O錯(cuò)誤這類異常導(dǎo)致的異常屬于其他異常。

常見的RuntimeException(運(yùn)行時(shí)異常):
????IndexOutOfBoundsException(下標(biāo)越界異常)
????NullPointerException(空指針異常)
? ?ClassCastException(類轉(zhuǎn)換異常)
????NumberFormatException(String轉(zhuǎn)換為指定的數(shù)字類型異常)
????ArithmeticException (算術(shù)運(yùn)算異常 如除數(shù)為0)
????ArrayStoreException (向數(shù)組中存放與聲明類型不兼容對(duì)象異常)
????SecurityException(安全異常)
????IOException(其他異常)
????FileNotFoundException(文件未找到異常)
????IOException(操作輸入流和輸出流時(shí)可能出現(xiàn)的異常)
????EOFException (文件已結(jié)束異常)