Board logo

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

作者: tonyh    時間: 2020-10-16 19:33     標題: 例外處理 (五) - 自訂例外類別1

除了捕捉Java拋出的例外物件,還可以利用關鍵字throw自行拋出例外物件。若在方法中拋出例外物件後,沒以try catch語法立即處理,則需在方法宣告列後方以throws關鍵字聲明該方法將會拋出例外物件,以強迫呼叫者處理例外。

  1. import java.util.Scanner;
  2. public class Ch51
  3. {
  4.     static Scanner s=new Scanner(System.in);
  5.     //方法中發生例外但沒處理,以throws語法拋給呼叫者處理
  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. }
複製代碼

作者: 林政瑜    時間: 2020-10-16 20:37

  1. import java.util.Scanner;
  2. public class Ch02
  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. }
複製代碼

作者: 李宇澤    時間: 2020-10-16 20:41

  1. import java.util.InputMismatchException;
  2. import java.util.Scanner;
  3. public class Ch01
  4. {
  5.     public static void main(String args[])
  6.     {
  7.          int a,b,c=0;
  8.          while(true)
  9.          {
  10.              if(c==3)
  11.              {
  12.                  System.out.println("錯誤嘗試過多! 程式跳出!");
  13.                  return;
  14.              }
  15.              try
  16.              {
  17.                  Scanner s=new Scanner(System.in);
  18.                  System.out.print("請輸入分子: ");
  19.                  a=s.nextInt();
  20.                  System.out.print("請輸入分母: ");
  21.                  b=s.nextInt();
  22.                  System.out.println(a+"/"+b+"="+(a/b));
  23.                  return;
  24.              }catch(ArithmeticException e)
  25.              {
  26.                  c++;
  27.                  System.out.println("運算錯誤! 分母不可為零!\n");
  28.              }catch(InputMismatchException e)
  29.              {
  30.                  c++;
  31.                  System.out.println("格式錯誤! 輸入須為整數!\n");
  32.              }
  33.          }
  34.     }
  35. }
複製代碼

作者: 董宸佑    時間: 2020-10-16 20:41

  1. import java.util.Scanner;
  2. public class Ch51
  3. {
  4.     static Scanner s=new Scanner(System.in);
  5.     //方法中發生例外但沒處理,以throws語法拋給呼叫者處理
  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. }
複製代碼

作者: 黃辰昊    時間: 2020-10-16 20:41

  1. import java.util.Scanner;
  2. public class Ch01
  3. {
  4.         public static void main(String args[]) throws MyException
  5.         {
  6.                 Scanner s=new Scanner(System.in);
  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. }
複製代碼

作者: 夏子涵    時間: 2020-10-16 20:42

  1. import java.util.Scanner;
  2. public class Ch01
  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. }
複製代碼

作者: 劉愷鈞    時間: 2020-10-16 20:43

  1. import java.util.InputMismatchException;
  2. import java.util.Scanner;
  3. public class Ch01
  4. {
  5.         static Scanner s=new Scanner(System.in);
  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("Hey分母不可為零!");
  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. }
複製代碼

作者: 沈子晏    時間: 2020-10-16 20:45

  1. import java.util.Scanner;
  2. public class Ch50 {
  3.         static Scanner s=new Scanner(System.in);
  4.         public static void main(String[] args) throws MyException
  5.         {
  6.                 float x,y;
  7.                 System.out.print("輸入分子: ");
  8.                 x=s.nextFloat();
  9.                 System.out.print("輸入分母: ");
  10.                 y=s.nextFloat();

  11.                 if(y==0)
  12.                         throw new MyException("分母不能為0喔");
  13.                 System.out.println(x+"/"+y+"="+(x/y));
  14.                 System.out.println();
  15.         }

  16. }
  17. class MyException extends Exception
  18. {
  19.         MyException(String str)
  20.         {
  21.                 super(str);
  22.         }
  23. }
複製代碼

作者: 黃宥華    時間: 2020-10-16 20:46

  1. import java.util.*;
  2. public class Ch99
  3. {
  4.         public static void main(String args[]) throws MyException
  5.         {
  6.                 float x,y;

  7.                 Scanner s=new Scanner(System.in);
  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. }
複製代碼

作者: 黃柏叡    時間: 2020-10-16 20:46

  1. import java.util.Scanner;
  2. public class Ch01
  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 MyExcetion extends Exception
  18. {
  19.         MyExcetion(String str)
  20.         {
  21.                 super(str);
  22.         }
  23. }
複製代碼

作者: 蔡忻霓    時間: 2020-10-16 20:47

  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. }
複製代碼

作者: 陳宥穎    時間: 2020-10-16 20:49

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





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