一、概念
如果某個方法不能按照正常的途徑完成任務,就可以通過另一種路徑退出方法。在這種情況下
會拋出一個封裝了錯誤信息的對象。此時,這個方法會立刻退出同時不返回任何值。另外,調用
這個方法的其他代碼也無法繼續執行,異常處理機制會將代碼執行交給異常處理器。
二、異常分類
Throwable 是 Java 語言中所有錯誤或異常的超類,在 Java 中只有 Throwable 類型的實例纔可以被拋出(throw)或者捕獲(catch),它是異常處理機制的基本組成類型。
實例分爲 Error 和 Exception 兩種。
2.1、Error
Error 類是指 java 運行時系統的內部錯誤和資源耗盡錯誤。應用程序不會拋出該類對象。如果
出現了這樣的錯誤,除了告知用戶,剩下的就是盡力使程序安全的終止。 (嚴重問題)
2.2、Exception
Exception 又有兩個分支 , 一個是運行時異常 RuntimeException , 一 個是檢查異常 CheckedException。
RuntimeException 如 :NullPointerException 、 ClassCastException ;
CheckedException 如: I/O 錯誤導致的 IOException、SQLException。
RuntimeException 是那些可能在 Java 虛擬機正常運行期間拋出的異常的超類。 如果出現 RuntimeException,那麼一
定是程序員代碼書寫導致的錯誤.
CheckedException:一般是外部錯誤,這種異常都發生在編譯階段,Java 編譯器會強
製程序去捕獲此類異常,在編譯期就顯式的通知程序員必須處理,即會出現要求你把這段可能出現異常的程序進行 try catch,該類異常一
般包括幾個方面:
- 試圖在文件尾部讀取數據
- 試圖打開一個錯誤格式的 URL
- 試圖根據給定的字符串查找 class 對象,而這個字符串表示的類並不存在
異常處理
java程序在運行時或者編譯時如果出現異常,則會產生異常對象,對於該異常對象的處理方法,通常包含兩種解決方法:
-
異常拋出(throws)
-
異常捕獲(try...catch...fianlly)
java中的異常處理通常包含以下關鍵字:
throw :一定會拋出該異常,通常出現在方法內部用於顯式拋出
throws :拋出有可能出現的異常,出現在方法聲明區域(在參數列表後面)
try :try語句塊一般用於將有可能出現異常的語句包裹
catch:處理try語句塊中可能出現的異常,一旦異常產生則進入對應的catch塊(可以catch多種異常)
finally:finally語句塊中內容無論是否出現異常,都會執行,一般用執行資源清理與回收