1.exception和error都是繼承了throwable類,在java中只有throwable類型的實例才可以被拋出(throw)或者捕獲(catch),它是異常處理機制的基本組成類型
2.exception和error體現了java平台設計者對不同異常情況的分類。exception是程序正常運行中,可以預料的意外情況,並且應該被捕獲,進行相應的處理
3.error是指在正常情況下,不大可能出現的情況,絕大部分的error都會導致程序(比如jvm自身)處於非正常的、不可恢復的狀態。既然是非正常情況,所以不便於也不需要捕獲,常見的比如OutOfMemoryError之類,都是Error的子類
4.Exception又分為可檢查異常和不可檢查異常,可檢查異常在源代碼里必須顯示的進行捕獲處理,這是編譯期檢查的一部分。不可檢查異常就是所謂的運行時異常,類似NullPointerException、ArrayIndexOutOfBoundsException之類,通常是可以編碼避免的邏輯錯誤,具體可以根據需要來判斷是否需要捕獲,並不會在編譯期強制要求