Adh*_*asa 4 java divide-by-zero
我一定在这里做了些蠢事.但我似乎无法弄清楚为什么这个简单的代码不起作用.InputMismatchException有效,但ArithmeticException永远不会被捕获.
import java.util.InputMismatchException;
import java.util.Scanner;
public class SubChap02_DivisionByZero {
public static double quotient(double num, double denum) throws ArithmeticException {
return num / denum;
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
double num, denum, result;
boolean continueLoop = true;
do {
try {
System.out.printf("Please enter the numerator: ");
num = scanner.nextFloat();
System.out.printf("Please enter the denumerator: ");
denum = scanner.nextFloat();
result = quotient(num, denum);
continueLoop = false;
System.out.printf("THIS: %.2f/%.2f is %.2f\n", num, denum, result);
scanner.close();
} catch (ArithmeticException arithmeticException) {
System.err.printf("Exception : %s\n", arithmeticException);
scanner.nextLine();
System.out.println("You can try again!");
} catch (InputMismatchException inputMismatchException) {
System.err.printf("Exception : %s\n", inputMismatchException);
scanner.nextLine();
System.out.println("You can try again!");
}
} while (continueLoop == true);
}
}
Run Code Online (Sandbox Code Playgroud)
Era*_*ran 12
如果你期望ArithmeticException在除以0.0时抛出,它就不会.双由0的Double.POSITIVE_INFINITY除法返回(将正双精度Double.NEGATIVE_INFINITY除以0.0),(将负双精度Double.NaN除以0.0 )或(将0.0除以0.0).
将int除以0将给出此异常.
| 归档时间: |
|
| 查看次数: |
1014 次 |
| 最近记录: |