java编写程序,有两种异常类方法,要求读入2个整数a和b,然后输出它们的商 ,即a/b的值,正常输出结果并保留2位小数,如果出现输入非数值型数据,则捕获异常NameError,并输出the input is not numerical,如果输入的除数b为0,则捕获异常ZeroDivisionError,输出zero division error 输入格式: 在2行中输入2个数据。 输出格式: 在一行中输出a/b的值,保留2位小数,若存在异常则捕获输出相应信息。
时间: 2024-03-02 16:48:14 浏览: 126
以下是Java代码实现:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
try {
int a = scanner.nextInt();
int b = scanner.nextInt();
double result = divide(a, b);
System.out.printf("%.2f", result);
} catch (NumberFormatException e) {
System.out.println("the input is not numerical");
} catch (ArithmeticException e) {
System.out.println("zero division error");
}
}
private static double divide(int a, int b) {
return (double) a / b;
}
}
```
程序运行时,首先读入两个整数a和b,然后调用divide方法计算它们的商。如果输入数据不是数值型数据,将抛出NumberFormatException异常,程序捕获该异常并输出相应信息。如果输入的除数b为0,则计算a/b将抛出ArithmeticException异常,程序捕获该异常并输出相应信息。如果输入的数据正确,程序将输出计算结果并保留两位小数。
阅读全文