當前位置:編程學習大全網 - 編程語言 - java編程:編寫應用程序,從命令行輸入兩個小數參數,求它們的商。要求程序中捕捉NumberFo

java編程:編寫應用程序,從命令行輸入兩個小數參數,求它們的商。要求程序中捕捉NumberFo

分析題目

NumberFormatException,數字格式異常,常見於由字符串轉換到數字的時候會出現

比如abc2.0--轉換成數字時,系統就會拋出這個異常。

ArithmeticException ,除0異常。這個異常常見於整數除整數,如果被除數是0,那麽會拋出這個異常。但是提示要求是小數除小數。double小數就算是0,那麽在存儲的時候也不是簡單的0,而可能是0.00000000001等情況,那麽除零異常就不會被拋出。我們可以自己手動判斷被除數是否等於0,如果等於0,那麽我們手動拋出該異常,然後進行捕獲

參考代碼壹:簡潔版

import?java.util.Scanner;

public?class?DivDemoSp?{

public?static?void?main(String[]?args)?{

Scanner?sc?=?new?Scanner(System.in);

while(true){

try{

System.out.println("輸入除數");

double?d1?=?Double.parseDouble(sc.nextLine());

System.out.println("輸入被除數");

double?d2?=?Double.parseDouble(sc.nextLine());

if(d2==0){

throw?new?ArithmeticException("捕獲到除0異常~~!!");//手動拋出除零異常

}

double?d3?=?d1?/?d2;

System.out.println("計算結果:"?+?d1?+?"/"?+?d2?+?"="?+?d3);

break;//如果能正常運行到這裏,說明前面的輸入都是正確的,所以可以跳出循環了

}catch(NumberFormatException?e1){//捕獲數字格式異常

System.out.println("捕獲到數字格式異常");

continue;

}catch?(ArithmeticException?e2)?{//捕獲到除零異常

System.out.println(e2.getMessage());

continue;

}

}

}

}

測試代碼

輸入除數

12

輸入被除數

0

捕獲到除0異常~~!!

輸入除數

12

輸入被除數

agc

捕獲到數字格式異常

輸入除數

12

輸入被除數

0.5

計算結果:12.0/0.5=24.0

參考代碼二:

public?class?DivDemo?{

static?Scanner?sc?=?new?Scanner(System.in);//?定義壹個掃描器,用於讀取輸入信息

public?static?void?main(String[]?args)?{//?main方法

div();//?調用除法方法

}

//div方法,用於得到2個小數,並且進行除法運算,如果被除數為0.拋出除零異常

static?void?div()?{

double?d1?=?getNum("輸入除數");//?調用輸入數字的方法

double?d2?=?getNum("輸入被除數");

try?{

if?(d2?==?0)?{//如果被除數等於0,那麽拋出除零異常

throw?new?ArithmeticException("捕獲到除零異常!!!");

}

double?d3?=?d1?/?d2;

System.out.println("計算結果:"?+?d1?+?"/"?+?d2?+?"="?+?d3);

//?div();//可以重新調用div方法,再次進行輸入

}?catch?(ArithmeticException?exception)?{//捕獲到除零異常

System.out.println(exception.getMessage());//打印出異常信息

//?div();//當捕獲異常後,也可以重新調用div方法,再次進行輸入

}

}

//getNum方法,用於得到壹個數字

static?double?getNum(String?tips)?{

double?dnum;//?定義壹個小數變量

while?(true)?{

try?{

System.out.println(tips);//?顯示提示文字

String?s1?=?sc.nextLine();//?讀取輸入的壹行信息

dnum?=?Double.parseDouble(s1);//?如果可以把輸入的信息轉換成數字就跳出循環,

//?如果無法把信息轉成數字就會報數字格式異常

break;//跳出循環

}?catch?(NumberFormatException?exception)?{//捕獲數字格式異常

System.out.println("捕獲到了數字格式錯誤異常!!!");//提示文字,並且繼續循環

}

}

return?dnum;//返回數字

}

}

運行測試

輸入除數

1.0

輸入被除數

0

捕獲到除零異常!!!

輸入除數

1.0abc

捕獲到了數字格式錯誤異常!!!

輸入除數

1.0

輸入被除數

0.5

計算結果:1.0/0.5=2.0

  • 上一篇:微商的勵誌晚安心語
  • 下一篇:短發編發教程圖解步驟,喜愛編發的女生別錯過
  • copyright 2024編程學習大全網