题目要求:编写应用程序,从命令行输入两个数据,求它们的商。要求程序能够捕获NumberFormatException异常和ArithmeticException异常。
实现效果视频:【Java】接口、内部类、匿名类、异常类(实验)_哔哩哔哩_bilibili
思路构建:
1.从命令行输入两个数据,求它们的商。
2.用try-catch捕获NumberFormatException异常和ArithmeticException异常。
测试类代码如下:
import java.util.Scanner;
public class test1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int c;
try {
int a = Integer.parseInt(sc.nextLine());
int b = Integer.parseInt(sc.nextLine());
c = a/b;
System.out.println("a/b="+c);
}
catch (NumberFormatException e){
System.out.println("数字异常:"+e.getMessage());
}
catch (ArithmeticException e){
System.out.println("算术异常:"+e.getMessage());
}
}
}
这里得到商因为定义了整型所以只会保留整数。如果改为浮点型则会产生精度问题,可以加位数限制来提高精度不过比较麻烦所以没有写。
同时,改成浮点型后除数为0时不会报错,而是显示答案为无限。
运行结果: