Java基礎:異常處理

jopen 9年前發布 | 20K 次閱讀 Java Java開發

1 java異常繼承體系

1.1 常用異常繼承體系

Java基礎:異常處理

Java把所有的非正常情況分為兩種情況:異常(Exception)和錯誤(Error),它們都繼承Throwable父類。

Error錯誤, 一般是指與虛擬機相關的問題,如系統崩潰、虛擬機錯誤、動態鏈接失敗等,這種錯誤無法恢復或不可能捕獲,將導致應用程序中斷。通常應用程序無法處理這些錯 誤,因此應用程序不應該試圖使用catch塊來捕獲Error對象。在定義方法時,也無須在其throws子句中聲明該方法可能拋出Error及其任何子 類。

Java異常(Exception)被分為兩大類:Checked異常Runtime異常。所有的RuntimeException類及其子類的實例都被稱為Runtime異常;不是RuntimeException類及其子類的異常實例則被稱為Checked異常。

Java認為Checked異常都是可以在編譯階段被處理的異常,所以它強制程序處理所有的Checked異常,如果程序沒有處理Checked異常,則程序在編譯時會發生錯誤,無法通過編譯;而Runtime異常無須處理。

Checked異常可以提醒程序員需要處理所有可能發生的異常,但是Checked異常也給編程帶來了一些煩瑣之處,只有Java提供了Checked異常,其他語言都沒有提供,所以Checked異常也是java領域一個備受爭論的話題。

1.2 常用異常

  • ArithmeticException:當出現異常的運算條件時,拋出此異常。例如,一個整數“除以零”時,拋出此類的一個實例。

  • IndexOutOfBoundsException:用非法索引訪問排序集合(例如,數組、字符串等)時拋出的異常,如果索引為負或大于等于排序集合大小,則該索引為非法索引。

  • NullPointerException:空指針異常。當應用程序試圖在需要對象的地方使用了null 時,拋出該異常。

  • ClassNotFoundException:無法找到指定的類異常。

  • CloneNotSupportedException:相關類沒有繼承Cloneable接口。

  • IOException:發生 I/O 錯誤時引發的異常。

  • FileNotFoundException:當java程序試圖打開指定路徑名表示的文件失敗時,拋出此異常。

  • EOFException:當輸入過程中意外到達文件或流的末尾時,拋出此異常。此異常主要被數據輸入流用來表明到達流的末尾。

  • UnknownHostException:給定IP的主機無法連接。




1.3 異常對象常用方法


2 異常關鍵字

2.1 try catch finally


2.2 throw throws


2.3 return與finally



3 JDK 7異常增強

3.1 自動關閉資源

3.2 多異常捕獲

4 異常跟蹤棧



5 自定義異常

6 異常最佳實踐

來自:http://my.oschina.net/sunchp/blog/375279

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!