1 编程 两数相除的异常处理
各自属于哪些异常:
数据格式不正确 NumberformatException
缺少命令行参数 ArrayIndexOutOfBoundsException
除0异常处理 ArithmeticException
ArrayIndexOutOfBoundsException 为数组下标越界时会抛出的异常,可以在检测到命令行参数个数不等于2时,人为强制抛出该异常(要不然只有在取args[下标]的时候,才能发现出现异常),然后再在catch中进行处理:
if (!(args.length == 2))
throw new ArrayIndexOutOfBoundsException("参数个数不对");
throw和throws的区别:
-
throws表明本方法不负责处理,去找调用本方法的对象进行处理(踢皮球),对于运行时异常,程序中如果没有处理,默认就是 throws 的方式处理,所有 Java 方法都默认隐式地抛出 RuntimeException 及其子类异常;
-
throw用于手动生成异常对象
* IDE中的命令行参数配置:
完整代码:
public class Homework01 {
public static int cal(int n1, int n2) {
return n1 / n2;
}
public static void main(String[] args) {
try {
if (!(args.length == 2))
throw new ArrayIndexOutOfBoundsException("参数个数不对");
int n1 = Integer.parseInt(args[0]);
int n2 = Integer.parseInt(args[1]);
int res = cal(n1, n2);
System.out.println("结果=" + res);
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println(e.getMessage());
} catch (NumberFormatException e) {
System.out.println("格式不正确,需要输入整数");
} catch (ArithmeticException e) {
System.out.println("出现除以0的异常");
}
}
}