error和exception的區別?
一、分類不同:
首先從繼承方面來說,Error和Exception都是Throwable的子類。Error比Exception更嚴重,不易通過后續代碼處理和修復,不應該被代碼catch到的錯誤。
而Exception是指嚴重程度較輕的程序問題,相較于Error更容易被后續代碼處理和修復的,有些需要通過try catch代碼處理,有些不建議通過try catch代碼處理。
二、含義不同:
Error就是程序運行時候拋出的最嚴重級別的錯誤了,如VirtualMachineError,ThreadDeath。拋出了Error的程序從Java設計的角度來講,程序基本不可以通過后續代碼修復,從而理應終止。
Exception 又分為可檢查(checked)異常和不檢查(unchecked)異常,可檢查異常在源代碼里必須顯式地進行捕獲處理,這是編譯期檢查的一部分。
好處
讓異常處理與業務邏輯的主線分離,我們可以對可以遇見的異常作分支處理,其實將業務邏輯與異常處理分離也是Exception設計的主旨,其次Java Exception 不需要像C語言那樣在程序的多個地方去檢測同一個錯誤,并就地作異常的處理,相比老式的錯誤處理,現行的錯誤處理的結構則來的更加清晰。