Java異常處理之異常類繼承層次

一、異常類繼承層次

異常封裝成爲類Exception,此外,還有Throwable和Error類,異常類繼承層次如圖19-1所示。
在這裏插入圖片描述

(1)Throwable類

從圖可見,所有的異常類都直接或間接地繼承於java.lang.Throwable類,在Throwable類有幾個非常 重要的方法:
String getMessage():獲得發生異常的詳細消息。
void printStackTrace():打印異常堆棧跟蹤信息。
String toString():獲得異常對象的描述。

//Throwable類
public class HelloWorld {
    public static void main(String[] args) {
        int a = 0;
        int result = divide(5,a);

    }
    public static int divide(int number,int divisor){
        try {
            return number/divisor;
        }
        catch (Throwable throwable){
            System.out.println("getMessage():"+throwable.getMessage());

            System.out.println("toString():"+throwable.toString());

            System.out.println("printStackTrace()輸出信息如下");
            throwable.printStackTrace();
        }
        return 0;
    }
}

(2)Error和Exception

從圖可見,Throwable有兩個直接子類:Error和Exception。

  1. Error Error:是程序無法恢復的嚴重錯誤,程序員根本無能爲力,只能讓程序終止。例如:JVM內部錯誤、內存溢出和資源耗盡等嚴重情況。
  2. Exception:是程序可以恢復的異常,它是程序員所能掌控的。例如:除零異常、空指針訪問、網 絡連接中斷和讀取不存在的文件等。本章所討論的異常處理就是對Exception及其子類的異常處理。

(3)受檢查異常和運行時異常

從圖可見,Exception類可以分爲:受檢查異常和運行時異常。

  1. 受檢查異常:受檢查異常是除RuntimeException以外的異常類。它們的共同特點是:編譯器會 檢查這類異常是否進行了處理,即要麼捕獲(try-catch語句),要麼不拋出(通過在方法後聲明 throws),否則會發生編譯錯誤。它們種類很多,前面遇到過的日期解析異常ParseException。
  2. 運行時異常:運行時異常是繼承RuntimeException類的直接或間接子類。運行時異常往往是程序員所犯錯誤導 致的,健壯的程序不應該發生運行時異常。它們的共同特點是:編譯器不檢查這類異常是否進 行了處理,也就是對於這類異常不捕獲也不拋出,程序也可以編譯通過。由於沒有進行異常處理,一旦運行時異常發生就會導致程序的終止,這是用戶不希望看到的。

以上內容僅供參考學習,如有侵權請聯繫我刪除!

發佈了59 篇原創文章 · 獲贊 7 · 訪問量 2955
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章