<span style="font-size:18px;">package com.zhao.throwtest;
public class DivTest {
public static void main(String[] args) {
try {
int a=Integer.parseInt(args[0]);
int b=Integer.parseInt(args[0]);
int c=a/b;
System.out.println("您输入的两个数相除的结果是:"+c);
}
catch (IndexOutOfBoundsException ie) {
System.out.println("数组越界:运行程序时输入的参数个数不够");
}
catch (NumberFormatException ne) {
System.out.println("数字格式异常:程序只能接受整数参数");
}
catch (ArithmeticException ae) {
System.out.println("算术异常");
}
catch (Exception e) {
System.out.println("未知异常");
}
}
}</span>
上面程序针对IndexOutOfBoundsException、NumberFormatException、ArithmeticException类型的异常,提供了专门的异常处理逻辑。java运行时的异常处理逻辑可能有如下几种情形。
(1)如果运行该程序时输入的参数不够,将会发生数组越界异常,Java运行时将调用IndexOutOfBoundsException对应的catch块处理该异常。
(2)如果运行该程序时输入的参数不是数字,而是字母,将发生数字格式异常,Java运行时将调用NumberFormatException对应的catch块处理该异常。
(3)如果运行该程序时输入的第二个参数是0,将发生除0异常,Java运行时将调用ArithmeticException对应的catch块处理该异常。
(4)如果程序运行时出现其他异常,该异常对象总是Exception类或其子类的实例,Java运行时将调用Exception对应的catch块处理该异常。
上面程序中的三种异常,都是非常常见的运行时异常,读者应该记住这些异常,并掌握在哪些情况下可能出现这些异常。