4、编写应用程序EcmDef.java,接收命令行的两个参数,要求不能输入负数,计算两数相除。 对以下几种异常分别进行处理: 1)对数据类型不一致(NumberFormatException); 2)缺少命令行参数(ArrayIndexOutOfBoundsException; 3)除0(ArithmeticException); 4)输入负数(EcDef 自定义的异常) 。
时间: 2023-06-26 22:09:31 浏览: 115
以下是EcmDef.java的代码实现:
```
public class EcmDef {
public static void main(String[] args) {
try {
int num1 = Integer.parseInt(args[0]);
int num2 = Integer.parseInt(args[1]);
if (num1 < 0 || num2 < 0) {
throw new EcDef("输入的数不能为负数!");
}
int result = ecm(num1, num2);
System.out.println("两数相除的结果是:" + result);
} catch (NumberFormatException e) {
System.out.println("数据类型不一致!");
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("缺少命令行参数!");
} catch (ArithmeticException e) {
System.out.println("除数不能为0!");
} catch (EcDef e) {
System.out.println(e.getMessage());
}
}
public static int ecm(int num1, int num2) throws ArithmeticException {
return num1 / num2;
}
}
class EcDef extends Exception {
public EcDef(String message) {
super(message);
}
}
```
在这个程序中,我们使用了try-catch语句块来捕获不同类型的异常,并且自定义了一个EcDef异常类来处理输入负数的情况。在main方法中,我们首先尝试将命令行参数转换为整数类型,如果转换失败则会抛出NumberFormatException异常。接着,我们检查输入的数是否为负数,如果是则会抛出我们自定义的EcDef异常。如果两个数都没有问题,那么就调用ecm方法来计算它们的商,如果除数为0,则会抛出ArithmeticException异常。如果程序运行过程中出现了异常,就会根据异常类型输出相应的错误信息。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)