## **Java異常**
異常:是Java代碼編譯或者運行過程中出現的問題
異常的繼承體系:
Throwable:可以拋出去異常
Exception:異常(普通問題)
編譯時異常,編譯 的時候出的問題.指的是RuntimeException 以及RuntimeException的子類
Error:錯誤
比如:OutOfMemoryError:超出內存錯誤
如果程序出現了錯誤,只能改代碼
## **異常的基本操作**
創建異常對象(JDK已定義的異常會自動創建對象,自定義異常需要手動創建)
對于異常的基本操作:
a,拋出異常:JDK已定義的異常會拋出創建對象,自定義異常需要手動拋出
b,處理異常:捕獲異常,使用try/catch做分支處理
異常處理指,處理的一種可能性,即有了異常處理的代碼,不一定產生異常
如果沒有異常,則代碼正常執行,如果產生了異常,則中斷當前執行代碼,執行異常處理代碼
### **異常處理注意事項:**
運行時異常可以不處理,不捕獲也不聲明
如果父類方法拋出多個異常,子類覆蓋父類方法時,只能拋出相同 的異常或者他的子集
父類方法沒有拋出異常,子類覆蓋父類方法時也不可拋出異常,此時子類產生該異常只能捕獲處理,不能聲明拋出(多線程會用到)
當多異常處理時,捕獲處理,前面的類不能是后面的類的父類
在try catch 后可以追加finally代碼塊,其中的代碼一定會被執行,通常用于資源回收
### **區分異常類
哪些是編譯時異常
Exception以及他的子類(runtimeException除外)
哪些是運行時異常\
RuntimeException以及他的子類
技巧,如何區分一個異常類
1.編譯時異常,在編譯時會報錯,需要我們處理
2,運行時異常,只要定義一個方法,在方法中拋出一個異常,如果編譯時報錯,那么就是編譯時異常,如果編譯成功就是有哪些時異常,
### **常見運行時異常:**
1.runtimeException
2,ClsssCastException:類型轉換異常(向下轉型的時候)
3,ArrayIndexOutOfBoundException:數組下標越界
4,StringIndexOutOfBoundException:字符串下標越界
5,NullPointerException:空指針異常