1. 程式人生 > >淺談異常處理

淺談異常處理

1、異常的概念

Java異常類層次結構圖: 

Throwable:有倆個重要的子類:Error(錯誤)和Exception(異常),兩者都是Java處理異常的重要子類,各自都包含了大量的子類。
Error(錯誤):是程式無法處理的錯誤,表示執行應用程式中較嚴重問題。大多數錯誤與程式碼編寫者執行的操作無關,而表示程式碼執行時 JVM(Java 虛擬機器)出現的問題。例如,Java虛擬機器執行錯誤(Virtual MachineError),當 JVM 不再有繼續執行操作所需的記憶體資源時,將出現 OutOfMemoryError。這些異常發生時,Java虛擬機器(JVM)一般會選擇執行緒終止。
Exception(異常)

:程式本身能夠處理的異常。
Exception可以分為:checked exceptions和unchecked exceptions:

1、unchecked exceptions(執行時異常)都是RuntimeException類及其子類異常,就是我們在開發中測試功能時程式終止,控制檯出現的異常,比如:
NullPointerException(空指標異常)
IndexOutOfBoundsException(下標越界異常)
ClassCastException(類轉換異常)
ArrayStoreException(資料儲存異常,運算元組時型別不一致)
IO操作的BufferOverflowException異常
優點:減少程式碼量,提高效率。
缺點:會給使用者帶來不好的體驗。

2、 checked exceptions,非執行時異常(編譯異常):
是RuntimeException以外的異常,型別上都屬於Exception類及其子類。從程式語法角度講是必須進行處理的異常,如果不處理,程式就不能編譯通過。如IOException、SQLException等以及使用者自定義的Exception異常,一般情況下不自定義檢查異常。
通俗的話說就是在寫程式碼時出現紅線,需要try catch或者throws時出現的異常。
優點:可以解決已知的異常,給使用者更好的體驗。
缺點:程式碼量大,影響效率。