基本概念
-
將程序執行中發生的不正常的情況稱為“異常”。開發中的語法錯誤和邏輯錯誤不是異常
執行過程中的異常事件可分為兩大類
- 錯誤(Error):Java虛擬機無法解決的嚴重問題。例如:JVM系統內存錯誤,資源耗盡等嚴重問題
- Exception:其他因為編程錯誤或偶爾的外在因素導致的一般性
- 可以針對不同的代碼進行處理
Exection有(編譯異常[編譯時,編譯器查找出的異常]和運行異常[開發時,運行時])
異常體系圖
異常體系圖總結
- 一般分為兩大類,一種是編譯時異常,一種是運行時異常
- 運行時異常編譯器檢查不出來。一般是指編譯時邏輯錯誤 ,是程序員應該避免其異常
- 對於運行時異常可以不做處理,因為這類異常很普遍,若全處理可能會對程序的可讀性,運行效率產生影響
- 編譯時異常,是編譯器要求必須處理的異常
常見的運行時異常
- Null Pointer Exception 空指針異常 : 指還沒有創建對象就想使用,會拋出空指針異常,當應用程序在需要對象的地方使用null時,會拋出異常
- Airthmetic Exception 數學運算異常:會出現異常的運算條件時拋出異常。例如一個整數除零時會拋出異常
- ArrayIndex OutOfBounds Exception 數組下標越界異常:數組下標越界異常,用非法索引訪問數組時拋出異常。如果索引為負或大於等於數組大小則所因為非法索引。
- Class cast Excetion 類型轉換異常:當試圖將對象強制轉換為不是實例的子類時,會拋出異常
- Number Format Excetion 數字格式不正確異常:當應用程序試圖將字符串轉成一種數值類型,但該字符串不能轉換為適當格式,拋出異常
編譯異常
- 編譯異常就是指編譯階段,就必須處理的異常,否則代碼不能通過編譯
- 常見的編譯異常
異常處理
- 異常處理就是在異常發生時,對異常處理的方式
- 異常處理的方式
- 理解
-
try-catch-finally 執行順序小結
throws 異常處理
throws和throw的區別