java培訓教程分享:Java中使用者如何自定義異常?

千鋒教育qyf發表於2021-12-02

  我們在學習 java技術的時候應該有了解過,在java中是定義了很多的異常類的,雖然這些大量異常類可以幫助我們描述程式設計時出現的大部分異常情況,但是在程式開發中有時可能需要描述程式中特有的異常情況,例如在設計divide()方法時不允許被除數為負數。為了解決這樣的問題,Java允許使用者自定義異常,但自定義的異常類必須繼承自Exception或其子類。接下來透過一個案例來學習自定義異常的建立,如例4-35所示。

   java培訓教程分享:Java中使用者如何自定義異常?

  //下面的程式碼是自定義一個異常類繼承自 Except ion

  public DivideByMinusException extends Exception

  public DivideByMinusException (){

  super () //呼叫Exception無參的構造方法

  }

  public DivideByMinusException (String message){

  //呼叫 Exceptlon有參的構造方法

  }

  }

  在實際開發中,如果沒有特殊的要求,自定義的異常類只需繼承Exception類,在構造方法中使用super()語句呼叫Exception的構造方法即可。

  既然自定義了異常,那麼該如何使用呢?這時就需要用到throw關鍵字,在程式指定位置透過throw關鍵字丟擲自定義的異常物件,然後對丟擲的異常進行異常處理。

  接下來重新對例4-33中的divide()方法進行改寫,在divide()方法中判斷被除數是否為負數,如果為負數,就是用throw關鍵字向呼叫者丟擲自定義的DivideByMinusException異常物件,如例4-36所示。

  例4-36 Example36.java

  public class Exanple36 (

  //下面的方法實現了兩個整數相除

  public static int divide(int x,int y) throws DivideByMinuaException{

  if (y ==0){

  //使用throw關鍵字宣告異常物件

  throw new DivideByMinuaException("除數是0")

  }

  int result. =x / yL; //定義一個變數resulc記錄兩個散相除的結果

  return result; //將結果返回

  publlc static void main(String[] args) {

  try {

  int result =divide (4, 0);

  System.out.println(result);

  } catch (DivideByMinuaException e) {

  Syatem.out.println(“捕獲的異常資訊為:" +e.getMesaage()):

  }

  }

  }

  執行結果如下圖所示:

java

  例4-36中,divide()方法透過邏輯判斷對除法運算的除數是否為0進行了判斷,如果除數為0就使用throw關鍵字丟擲自定義的DivideByMinusException異常物件,然後透過throws關鍵字丟擲異常,並在最後透過try…catch語句捕獲異常。從圖4-40可以看出,程式執行後判斷出除數為0,丟擲了指定的異常資訊。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69996644/viewspace-2845492/,如需轉載,請註明出處,否則將追究法律責任。

相關文章