本帖最後由 鄭繼威 於 2023-8-2 21:07 編輯
試自訂一名為 MyException 的例外類別, 使在 BMI 值的計算程式中, 當使用者輸入的身高或體重數值不合常理時, 自行拋出該類別的例外物件, 並且使用 try...catch 語法, 如果 catch 到該類別的例外物件, 則回應 "請輸入合理的身高! (或體重)". 當然, 其他的例外物件也要能 catch 到, 譬如如果 catch 到 InputMismatchException 則回應 "請輸入數字!"
- 合理身高:50~250
- 合理體重:6~250
- BMI = 體重(公斤) / 身高2(公尺2).
- import java.util.*;
- public class Ch01
- {
- public static void main(String args[])
- {
- while(true)
- {
- try
- {
- double h,w,bmi;
- Scanner s=new Scanner(System.in);
- System.out.print("請輸入你的身高(公分): ");
- h=s.nextDouble();
- if(h<50 || h>250)
- throw new MyException("請輸入合理的身高!");
- System.out.print("請輸入你的體重(公斤): ");
- w=s.nextDouble();
- if(w<5 || w>250)
- throw new MyException("請輸入合理的體重!");
- bmi = w / ((h/100) * (h/100));
- System.out.println("你的BMI值為: "+bmi);
- }catch(InputMismatchException e)
- {
- System.out.println("請輸入數字!");
- }catch(MyException e)
- {
- System.out.println(e.getMessage());
- }
- System.out.println();
- }
- }
- }
- class MyException extends Exception //繼承
- {
- MyException(String str) //建構子
- {
- super(str);
- }
- }
複製代碼 |