Error
)和異常類(
Exception
)都是
Throwable
的子類,基本由這兩大類展開的。
Error
這個類一般指的是系統級的錯誤,如OutOfMemoryError
(內存溢出)、StackOverflowError
(棧溢出)這些錯誤,當出現這些錯誤時基本是系統問題,基本不能經過捕獲去恢復,因此不要求捕獲或聲明。此時能夠由它拋出異常而後記錄下來,過後分析。編程
Exception
其實也分爲兩類異常數組
不受檢查異常便是RuntimeException
和RuntimeException
的子類,如NullPointerException
(空指針異常)、ArrayIndexOutOfBoundsException
(數組下標越界異常)、IllegalArgumentException
(非法參數異常)。這類異常不要求try catch
捕獲或throws
聲明拋出,由於出現此類異常一般是因爲代碼問題,若是任由程序運行下去可能會出現意想不到後果,因此不該該捕獲處理試圖恢復。指針
受檢查異常即除了RuntimeException
外Exception
類和Exception
下的子類,如InterruptedException
、IOException
。出現此類異常必須在編譯前捕獲或聲明拋出,不然編譯不經過。此類異常一般是能夠捕獲並有效處理因此不能忽略。code