返回列表 發帖

例外處理 (四)

本帖最後由 鄭繼威 於 2023-7-5 20:11 編輯

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


本帖隱藏的內容需要積分高於 1 才可瀏覽

本帖最後由 李彣 於 2023-7-5 20:05 編輯
  1. import java.util.Scanner;
  2. import java.util.InputMismatchException;
  3. public class B
  4. {
  5.         public static void main(String[] args)
  6.         {
  7.                 try
  8.         {
  9.             Scanner s=new Scanner(System.in);
  10.             int x,y;
  11.             System.out.print("輸入分子:");
  12.             x=s.nextInt();
  13.             System.out.print("輸入分母:");
  14.             y=s.nextInt();
  15.             System.out.println(x+"/"+y+"="+(x/y));
  16.         }
  17.                 catch(InputMismatchException e)
  18.         {
  19.             System.out.println("格式錯誤!輸入須為整數!");
  20.             System.out.println("例外類別:"+e.toString());
  21.         }
  22.                 catch(ArithmeticException e)
  23.         {
  24.             System.out.println("運算錯誤! 分母不可為零!");
  25.             System.out.println("例外類別:"+e.toString());
  26.         }
  27.         System.out.println();
  28.         }
  29. }
複製代碼

TOP

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

TOP

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

  36. }
複製代碼

TOP

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

TOP

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

TOP

返回列表