返回列表 發帖

例外處理 (四)

本帖最後由 tonyh 於 2019-8-31 14:39 編輯

利用 try...catch 語法捕捉例外, 針對不同的例外做出不同的回應, 並只允許使用者至多三次的錯誤嘗試.
(例如若捕捉到 ArithmeticException 便回應 "運算錯誤! 分母不可為零!",而若捕捉到 InputMismatchException 則回應 "格式錯誤! 輸入須為整數!")



本帖隱藏的內容需要回復才可以瀏覽

  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 x,y,n=0;
  8.          while(true)
  9.          {
  10.              if(n==3)
  11.              {
  12.                  System.out.println("錯誤嘗試過多! 程式跳出!");
  13.                  return;
  14.              }
  15.              try
  16.              {
  17.                  Scanner s=new Scanner(System.in);
  18.                  System.out.print("請輸入分子: ");
  19.                  x=s.nextInt();
  20.                  System.out.print("請輸入分母: ");
  21.                  y=s.nextInt();
  22.                  System.out.println(x+"/"+y+"="+(x/y));
  23.                  return;
  24.              }catch(ArithmeticException e)
  25.              {
  26.                  n++;
  27.                  System.out.println("運算錯誤! 分母不可為零!\n");
  28.              }catch(InputMismatchException e)
  29.              {
  30.                  n++;
  31.                  System.out.println("格式錯誤! 輸入須為整數!\n");
  32.              }
  33.          }
  34.     }
  35. }
複製代碼

TOP

  1. import java.util.InputMismatchException;
  2. import java.util.Scanner;


  3. public class Hello {

  4.         public static void main(String[] args) {
  5.                 // TODO 自動產生的方法 Stub

  6.                 int x ,y ,n=0;
  7.                 for(;;)
  8.                 {
  9.                         if(n==3)
  10.                         {
  11.                                 System.out.println("錯誤過多");
  12.                                 return;
  13.                         }
  14.                         try
  15.                         {
  16.                                 Scanner s=new Scanner(System.in);
  17.                                 System.out.print("請輸入x:");
  18.                                 x=s.nextInt();
  19.                                 System.out.print("請輸入y:");
  20.                                 y=s.nextInt();
  21.                                 System.out.println("x/y="+(x/y));
  22.                         }catch(ArithmeticException e)
  23.                         {
  24.                                 n++;
  25.                                 System.out.println("運算錯誤! 分母不可為零!");
  26.                         }catch(InputMismatchException e)
  27.                         {
  28.                                 n++;
  29.                                 System.out.println("格式錯誤! 輸入須為整數!");
  30.                         }
  31.                 }
  32.         }

  33. }
複製代碼

TOP

  1. import java.util.*;
  2. public class Ch17 {

  3.         public static void main(String[] args)
  4.         {
  5.                 int x,y,count=0;
  6.                 while(true)
  7.                 {
  8.                         if(count==3)
  9.                         {
  10.                                 System.out.println("您已輸入錯誤三次了!");
  11.                                 return;
  12.                         }
  13.                         try
  14.                         {
  15.                         Scanner c= new Scanner(System.in);
  16.                         System.out.print("請輸入x:");
  17.                         x=c.nextInt();
  18.                         System.out.print("請輸入y:");
  19.                         y=c.nextInt();
  20.                         System.out.print("x/y="+(x/y));
  21.                         }catch(ArithmeticException e)
  22.                         {
  23.                                 count++;
  24.                                 System.out.println("分母不可以為零!");
  25.                         }catch(InputMismatchException e)
  26.                         {
  27.                                 count++;
  28.                                 System.out.println("輸入必須為整數!");
  29.                         }
  30.                 }
  31.         }

  32. }
複製代碼

TOP

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

TOP

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

TOP

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

TOP

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

TOP

  1. import java.util.InputMismatchException;
  2. import java.util.Scanner;
  3. public class A02 {
  4.         public static void main(String[] args)
  5.         {
  6.                 int a, b, s=0;
  7.                 while(true)
  8.                 {
  9.                         if(s==3)
  10.                         {
  11.                                 System.out.print("嘗試次數過多");
  12.                                 return;
  13.                         }
  14.                         try
  15.                         {
  16.                                 Scanner c=new Scanner(System.in);
  17.                                 System.out.print("請輸入分子: ");
  18.                                 a=c.nextInt();
  19.                                 System.out.print("請輸入分母: ");
  20.                                 b=c.nextInt();
  21.                                 System.out.print(a+"/"+b+"="+(a/b));
  22.                         }catch(ArithmeticException e)
  23.                         {
  24.                                 s++;
  25.                                 System.out.println("分母不可為零");

  26.                         }catch(InputMismatchException e)
  27.                         {
  28.                                 s++;
  29.                                 System.out.println("請輸入整數");
  30.                         }
  31.                 }
  32.         }
  33. }
複製代碼

TOP

返回列表