程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 詳解Java的內置異常和創立自界說異常子類的辦法

詳解Java的內置異常和創立自界說異常子類的辦法

編輯:關於JAVA

詳解Java的內置異常和創立自界說異常子類的辦法。本站提示廣大學習愛好者:(詳解Java的內置異常和創立自界說異常子類的辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是詳解Java的內置異常和創立自界說異常子類的辦法正文


內置異常子類

在尺度包java.lang中,Java界說了若干個異常類。後面的例子曾用到個中一些。這些異常普通是尺度類RuntimeException的子類。由於java.lang現實上被一切的Java法式引入,多半從RuntimeException派生的異常都主動可用。並且,它們不須要被包括在任何辦法的throws列表中。Java說話中,這被叫做未經檢討的異常(unchecked exceptions )。由於編譯器不檢討它來看一個辦法能否處置或拋出了這些異常。 java.lang中界說的未經檢討的異常列於表1。表2列出了由 java.lang界說的必需在辦法的throws列表中包含的異常,假如這些辦法能發生個中的某個異常然則不克不及本身處置它。這些叫做受檢討的異常(checked exceptions)。Java界說了幾種與分歧類庫相干的其他的異常類型。

表1:Java 的 java.lang 中界說的未檢討異常子類

表2:java.lang 中界說的檢討異常

應用Java創立本身的異常子類

雖然Java的內置異常處置年夜多半罕見毛病,你或許願望樹立你本身的異常類型來處置你所運用的特別情形。這長短常簡略的:只需界說Exception的一個子類便可以了(Exception固然是Throwable的一個子類)。你的子類不須要現實履行甚麼——它們在類型體系中的存在許可你把它們當做異常應用。

Exception類本身沒有界說任何辦法。固然,它繼續了Throwable供給的一些辦法。是以,一切異常,包含你創立的,都可以取得Throwable界說的辦法。這些辦法顯示在表3中。你還可以在你創立的異常類中籠罩一個或多個如許的辦法。
表3 Throwable 界說的辦法

上面的例子聲清楚明了Exception的一個新子類,然後該子類看成辦法中失足情況的旌旗燈號。它重載了toString( )辦法,如許可以用println( )顯示異常的描寫。

// This program creates a custom exception type.
class MyException extends Exception {
  private int detail;
  MyException(int a) {
    detail = a;
  }

  public String toString() {
    return "MyException[" + detail + "]";
  }
}

class ExceptionDemo {
  static void compute(int a) throws MyException {
    System.out.println("Called compute(" + a + ")");
    if(a > 10)
     throw new MyException(a);
    System.out.println("Normal exit");
  }

  public static void main(String args[]) {
    try {
      compute(1);
      compute(20);
    } catch (MyException e) {
      System.out.println("Caught " + e);
    }
  }
}

該例題界說了Exception的一個子類MyException。該子類異常簡略:它只含有一個結構函數和一個重載的顯示異常值的toString( )辦法。ExceptionDemo類界說了一個compute( )辦法。該辦法拋出一個MyException對象。當compute( )的整型參數比10年夜時該異常被激發。

main( )辦法為MyException設立了一個異常處置法式,然後用一個正當的值和不正當的值挪用compute( )來顯示履行經由代碼的分歧途徑。上面是成果:

Called compute(1)
Normal exit
Called compute(20)
Caught MyException[20]

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved