Board logo

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

作者: 鄭繼威    時間: 2023-8-2 15:10     標題: 例外處理 (六) - 自訂例外類別2

本帖最後由 鄭繼威 於 2023-8-2 21:07 編輯

自訂一名為 MyException 的例外類別, 使在 BMI 值的計算程式中, 當使用者輸入的身高或體重數值不合常理時, 自行拋出該類別的例外物件, 並且使用 try...catch 語法, 如果 catch 到該類別的例外物件, 則回應 "請輸入合理的身高! (或體重)". 當然, 其他的例外物件也要能 catch 到, 譬如如果 catch 到 InputMismatchException 則回應 "請輸入數字!"

  1. import java.util.*;
  2. public class Ch01
  3. {
  4.     public static void main(String args[])
  5.     {
  6.         while(true)
  7.         {
  8.             try
  9.             {
  10.                 double h,w,bmi;
  11.                 Scanner s=new Scanner(System.in);
  12.                 System.out.print("請輸入你的身高(公分): ");
  13.                 h=s.nextDouble();
  14.                 if(h<50 || h>250)
  15.                     throw new MyException("請輸入合理的身高!");
  16.                 System.out.print("請輸入你的體重(公斤): ");
  17.                 w=s.nextDouble();
  18.                 if(w<5 || w>250)
  19.                     throw new MyException("請輸入合理的體重!");
  20.                 bmi = w / ((h/100) * (h/100));
  21.                 System.out.println("你的BMI值為: "+bmi);
  22.             }catch(InputMismatchException e)
  23.             {
  24.                 System.out.println("請輸入數字!");
  25.             }catch(MyException e)
  26.             {
  27.                 System.out.println(e.getMessage());
  28.             }
  29.             System.out.println();
  30.         }
  31.     }
  32. }
  33. class MyException extends Exception    //繼承
  34. {
  35.     MyException(String str)   //建構子
  36.     {
  37.         super(str);
  38.     }
  39. }
複製代碼

作者: 李彣    時間: 2023-8-2 20:57

此帖僅作者可見
作者: 黃裕恩    時間: 2023-8-2 21:01

此帖僅作者可見
作者: 林劭澧    時間: 2023-8-2 21:04

此帖僅作者可見
作者: 林劭杰    時間: 2023-8-2 21:06

此帖僅作者可見




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