JAVA编写双精度实数除法运算程序,要求捕获除数为0异常、数字格式异常、通用型异常。注意要把通用型异常的捕获顺序放在最后。
时间: 2024-03-07 10:49:38 浏览: 87
java中double类型运算结果异常的解决方法
好的,以下是JAVA编写的双精度实数除法运算程序,包括捕获除数为0异常、数字格式异常和通用型异常:
```java
import java.util.Scanner;
public class DoubleDivision {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
try {
System.out.print("请输入被除数:");
double dividend = Double.parseDouble(scanner.nextLine());
System.out.print("请输入除数:");
double divisor = Double.parseDouble(scanner.nextLine());
double result = dividend / divisor;
System.out.println("计算结果为:" + result);
} catch (NumberFormatException e) {
System.out.println("输入的数字格式不正确,请重新输入!");
} catch (ArithmeticException e) {
System.out.println("除数不能为0,请重新输入!");
} catch (Exception e) {
System.out.println("发生了一个通用型异常,请检查输入并重试!");
}
}
}
```
在上面的程序中,我们使用了 `try-catch` 语句来捕获异常。首先,我们使用 `Scanner` 类获取用户输入的被除数和除数,并将它们转换为双精度实数类型。如果输入的数字格式不正确,则会捕获 `NumberFormatException` 异常并输出提示信息。如果除数为0,则会捕获 `ArithmeticException` 异常并输出提示信息。最后,如果发生了其他类型的异常,则会捕获 `Exception` 异常并输出通用型异常的提示信息。
请注意,在捕获多个异常时,我们应该按照特定的顺序来捕获它们。如果将通用型异常的捕获放在最前面,则可能会屏蔽其他特定类型的异常。因此,我们应该将通用型异常的捕获放在最后面,以便它只在其他特定类型的异常都未被捕获时才被捕获。
阅读全文