7、Exception和Error有什麼區別?

exception 和 error都是繼承了 throwable類,在java中只有 throwable類型的實例纔可以被拋出  throw活着 捕獲  catch,它是異常處理機制的基本組成類型,

 exception和error 體現了java平臺設計者對不同異常情況的分類, exceptin是程序正常運行中,可以預料的意外情況,  可能並且應該被捕獲,進行相應處理的。

 

error是指在正常情況下,不大可能出現的情況,絕大部分的 error都會導致程序 比如jvm自身 ,處於非正常的、 不可恢復狀態。 既然是非正常情況,所以不便於也不需要捕獲,常見的比如outofmemerorerror之類, 都是error的子類。

 

exception又分爲可檢查( checked)異常和不檢查( unchecked)異常, 可檢測異常在源代碼必須顯示的進行捕獲處理,這是編譯器檢查的一部分,前面我介紹的不可查的error,是thrwowable不是exception。

不檢查異常就是所謂的運行時異常,類似nullpointerexception, arrayindexoutofboundsexction之類,通常是可以編碼避免的邏輯錯誤,具體根據需要來判斷是否需要捕獲,並不會在編譯器強制要求。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章