標題:
【060】例外處理 (六) - 自訂例外類別2
[打印本頁]
作者:
tonyh
時間:
2023-4-26 15:56
標題:
【060】例外處理 (六) - 自訂例外類別2
本帖最後由 tonyh 於 2023-4-26 16:21 編輯
試自訂一名為 MyException 的例外類別, 使在 BMI 值的計算程式中, 當使用者輸入的身高或體重數值不合常理時, 自行拋出該類別的例外物件, 並且使用 try...catch 語法, 如果 catch 到該類別的例外物件, 則回應 "請輸入合理的身高! (或體重)". 當然, 其他的例外物件也要能 catch 到, 譬如如果 catch 到 InputMismatchException 則回應 "請輸入數字!"
import java.util.*;
public class Ch51
{
public static void main(String args[])
{
for(;;)
{
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("請輸入合理的身高!");
h/=100; //h=h/100;
System.out.print("請輸入你的體重(公斤): ");
w=s.nextDouble();
if(w<5 || w>250)
throw new MyException("請輸入合理的體重!");
bmi=w/(h*h);
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);
}
}
複製代碼
作者:
王捷恩
時間:
2023-4-26 16:33
import java.util.*;
public class B {
public static void main(String[] args) {
for(;;)
{
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("請輸入合理的身高!");
h/=100;
System.out.print("請輸入你的體重(公斤): ");
w=s.nextDouble();
if(w<5 || w>250)
throw new MyException("請輸入合理的體重!");
bmi=w/(h*h);
System.out.printf("你的BMI值為: %.2f",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);
}
}
複製代碼
歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://istak.org.tw/seed/)
Powered by Discuz! 7.2