異常java
Java運行過程當中發生的異常能夠分爲兩類:程序員
1.錯誤(Error):JVM系統內部錯誤,資源耗費等嚴重狀況數據庫
2.異常(Exception):其餘因編程錯誤或偶然的外在因素致使的通常性問題編程
- 能夠對下列情形在方法定義中拋出異常
(1) 方法中調用了一個會拋出「已檢查異常」的方法數組
(2) 程序運行過程當中發生了錯誤,而且用throw子句拋出一個」已檢查異常」安全
a.對負數開平方根網絡
b.空指針訪問指針
c.試圖讀取不存在文件orm
d.網絡鏈接中斷對象
e.分母爲0
PS:不要拋出:從Error派生的那些異常
JAVA異常處理機制
- JAVA程序的執行過程當中如出現異常,會自動生成一個異常類對象,該異常對象將被提交給JAVA運行時系統,這個過程稱爲拋出(throw)異常----主動
- 當JAVA運行時系統接收到異常對象時,會尋找能處理這一異常的代碼並把當前異常對象交給其處理,這一過程稱爲捕獲(catch)異常----被動
- 若是JAVA運行時系統找不到能夠捕獲異常的方法,則運行時系統將終止,相應的JAVA程序也將退出
- 程序員一般只能處理Exception,而對錯誤Error無能爲力
常見異常:
- RuntimeException
- ArithmeticException:數學計算異常
- NullPointerException:空指針異常
- NegativeArraySizeException:負數組長度異常
- ArrayIndexOutOfBoundsException:數組索引越界異常
- ClassNotFoundException:類文件未找到異常
- ClassCastException:造型異常
- IOException
- FileNotFoundException:文件未找到異常
- EOFException:讀寫文件尾異常
- MalformedURLException:URL格式錯誤異常
- SocketException:Socket異常(套接字)
- 算數異常類:ArithmeticException
- 空指針異常類:NullpointerException
- 類型強制轉換異常:ClassCastException
- 數組負下標異常:NegativeArrayException
- 數組下標越界異常:ArrayIndexOutOfBoundsException
- 違背安全原則異常:Secturity Exception
- 文件已結束異常:EOFException
- 文件未找到異常:FileNotFoundException
- 字符串轉換爲數字異常:NumberFormatException
- 操做數據庫異常:SQLException
- 輸入輸出異常:IOException
- 方法未找到異常:NotSuchMethodException
- 抽象方法錯誤異常java.lang.AbstractMethodError
- 斷言錯誤異常java.lang.AssertionError
- 類循環依賴錯誤異常java.lang.ClassCircularityError
- PS:當一個異常沒有在當前的try-catch中處理的話將會拋給調用它的方法(throws)
- PS:當一個異常一直沒有可以被處理最後又回到主方法的時候,程序將會中止運行
-
若是程序須要catch塊中訪問異常對象的相關信息,能夠經過調用catch後異常形參的方法來得到。當JAVA運行時決定調用某個catch塊來處理異常對象時,會將該異常對象賦給該catch塊後的異常參數,程序就能夠經過該參數得到異常的相關信息啦
getMessage():返回該異常的詳細描述字符串
printStackTrace():將 該異常的錯誤棧信息輸出屏幕上
printStackTrace(PrintStream s):將該異常的跟蹤棧信息輸出到指定的輸出流
getStackReace():返回該異常的跟蹤棧信息