一、多异常处理,方式:
1、多个异常,分别处理
2、多个异常一次捕获,多次处理。
注意:在此情况下,如果多个异常有子父类关系,子类必须放前,否则会报错。
3、多个异常,一次捕获,一次处理
二、说明:运行时的异常,可以不抛出也可以不处理,虚拟机会处理
三、举例
import java.util.ArrayList;
public class Demo06ExceptionMul {
public static void main(String[] args) {
int[] iarray = new int[]{1,2,3};
ArrayList<Integer> array = new ArrayList<>();
//多次捕获,多次处理
System.out.println("多次捕获,多次处理");
try{
System.out.println(iarray[3]);
}catch (ArrayIndexOutOfBoundsException e)
{
System.out.println(e);
}
try{
System.out.println(array.get(3));
}catch (IndexOutOfBoundsException e)
{
System.out.println(e);
}
//一次捕获,多次处理
System.out.println("一次捕获多次处理");
/*由于ArrayIndexOutOfBoundsException 是IndexOutOfBoundsException的子类,因此要放前面*/
try{
System.out.println(iarray[3]);
//System.out.println(array.get(3));
}catch (ArrayIndexOutOfBoundsException e)
{
System.out.println(e);
}catch (IndexOutOfBoundsException e)
{
System.out.println(e);
}
//一次捕获一次处理
System.out.println("一次捕获一次处理");
try{
System.out.println(iarray[3]);
System.out.println(array.get(3));
}catch (Exception e)
{
System.out.println(e);
}
System.out.println("程序结束!");
}
}
输出:
多次捕获,多次处理
java.lang.ArrayIndexOutOfBoundsException: Index 3 out of bounds for length 3
java.lang.IndexOutOfBoundsException: Index 3 out of bounds for length 0
一次捕获多次处理
java.lang.ArrayIndexOutOfBoundsException: Index 3 out of bounds for length 3
一次捕获一次处理
java.lang.ArrayIndexOutOfBoundsException: Index 3 out of bounds for length 3
程序结束!