Board logo

標題: 例外處理 (五) - 自訂例外類別 [打印本頁]

作者: tonyh    時間: 2017-4-15 09:55     標題: 例外處理 (五) - 自訂例外類別

除了捕捉Java拋出的例外物件,還可以利用關鍵字 throw 自行拋出例外物件。而若拋出的例外物件非系統能自行捕捉到,譬如自訂類別的例外,則需在方法宣告列後面利用關鍵字 throws 註明例外類別名稱,以便在指定的方法中拋出例外。

  1. import java.util.Scanner;
  2. public class Ch51
  3. {
  4.     static Scanner s=new Scanner(System.in);
  5.     //若拋出的例外物件非系統能自行捕捉到,譬如自訂類別的例外物件,需在此註明
  6.     public static void main(String[] args) throws MyException
  7.     {   
  8.         float x,y;
  9.         System.out.print("輸入分子: ");
  10.         x=s.nextFloat();
  11.         System.out.print("輸入分母: ");
  12.         y=s.nextFloat();
  13.         if(y==0)
  14.             throw new MyException("嘿嘿嘿~分母不可為零喔!");
  15.         System.out.println(x+"/"+y+"="+(x/y));
  16.     }
  17. }
  18. class MyException extends Exception
  19. {
  20.     MyException(String str)
  21.     {
  22.         super(str);   //呼叫父類別的建構子
  23.     }
  24. }
複製代碼

作者: 林侑成    時間: 2017-4-15 10:31

  1. import java.util.Scanner;
  2. public class Ch51
  3. {
  4.     static Scanner s=new Scanner(System.in);
  5.     public static void main(String[] args) throws MyException
  6.     {   
  7.         float x,y;
  8.         System.out.print("輸入分子: ");
  9.         x=s.nextFloat();
  10.         System.out.print("輸入分母: ");
  11.         y=s.nextFloat();
  12.         if(y==0)
  13.             throw new MyException("嘿嘿嘿~分母不可為零喔!");
  14.         System.out.println(x+"/"+y+"="+(x/y));
  15.     }
  16. }
  17. class MyException extends Exception
  18. {
  19.     MyException(String str)
  20.     {
  21.         super(str);
  22.     }
  23. }
複製代碼

作者: 黃茂勛    時間: 2017-4-15 10:32

  1. import java.util.Scanner;
  2. public class Ch56
  3. {
  4.   static Scanner s=new Scanner(System.in);
  5.   public static void main(String args[])throws MyException
  6.   {
  7.     float x,y;
  8.     System.out.print("輸入分子: ");
  9.     x=s.nextFloat();
  10.     System.out.print("輸入分母: ");
  11.     y=s.nextFloat();
  12.     if(y==0)
  13.        throw new MyException("87 分母不為零~");
  14.     System.out.println(x+"/"+y+"="+(x/y));
  15.   }
  16. }
  17. class MyException extends Exception
  18. {
  19.      MyException(String str)
  20.      {
  21.        super(str);
  22.      }
  23. }
複製代碼

作者: 陸長辰    時間: 2017-4-15 10:47

  1. import java.util.Scanner;
  2. public class Ch50
  3. {
  4.     static Scanner s=new Scanner(System.in);
  5.     public static void main(String args[])throws MyException
  6.     {
  7.         float x,y;
  8.         System.out.print("輸入分子");
  9.         x=s.nextFloat();
  10.         System.out.print("輸入分母");
  11.         y=s.nextFloat();
  12.         if(y==0)
  13.             throw new MyException("分母不能是0");
  14.         System.out.println(x+"/"+y+"="+(x/y));
  15.     }
  16. }
  17. class MyException extends Exception
  18. {
  19.       MyException(String str)
  20.       {
  21.           super(str);
  22.       }
  23. }
複製代碼

作者: 陳泓瑜    時間: 2017-4-15 11:01

  1. import java.util.Scanner;
  2. public class Ch44
  3. {
  4.    static Scanner s=new Scanner(System.in);
  5.    
  6.    public static void main (String[] args) throws ME
  7.    {
  8.       float x,y;
  9.       System.out.print("ENTER X/-:");
  10.       x=s.nextFloat();
  11.       System.out.print("ENTER -/Y:");
  12.       y=s.nextFloat();

  13.       if(y==0)
  14.         throw new ME("DIV/0!");
  15.       
  16.       System.out.println(x+"/"+y+"="+(x+y));
  17.    }

  18. }
  19. class ME extends Exception
  20. {
  21.   ME(String str)
  22.   {
  23.      super(str);
  24.   }
  25. }
複製代碼





歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://istak.org.tw/seed/) Powered by Discuz! 7.2