多个异常的处理方式:
多个异常的处理方式
- 1.多个异常分别处理
- 2.多个异常一次捕获,多次处理
- 3.多个异常,一次捕获,一次处理(注意:)
注意事项,一个try多个catch,如果catch里面定义的异常变量,如果有父子关系,必须将子类的异常变量放到父类前面,否则就会报错
原理图
代码举例
public class Demo08MultiException {
public static void main(String[] args) {
//1.多个异常分别处理
/*try {
int array[]={1,2,3};
System.out.println(array[3]);
}catch (ArrayIndexOutOfBoundsException e)
{
System.out.println(e);
}
try {
List<Integer> list=new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
System.out.println(list.get(4));
}catch (IndexOutOfBoundsException e)
{
System.out.println(e);
}
*/
//2.多个异常一次捕获,多次处理
/*try {
int array[]={1,2,3};
// System.out.println(array[3]);//java.lang.ArrayIndexOutOfBoundsException: 3 注释掉这个才执行下一个catch
List<Integer> list=new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
System.out.println(list.get(4));
}
*//* catch (IndexOutOfBoundsException e)//处理集合越界
{
System.out.println(e);
}*//*catch (ArrayIndexOutOfBoundsException e)//处理数组越界
{
System.out.println(e);
}
*//*catch (IndexOutOfBoundsException e)//处理集合越界
{
System.out.println(e);
}*/
//3.多个异常,一次捕获,一次处理
try {
int array[]={1,2,3};
System.out.println(array[3]);//java.lang.ArrayIndexOutOfBoundsException: 3 注释掉这个才执行下一个catch
List<Integer> list=new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
System.out.println(list.get(4));
}
catch (Exception e)//处理集合越界
{
System.out.println(e);
}
System.out.println("继续执行!");//继续执行!
/*注意事项,一个try多个catch,如果catch里面定义的异常变量,如果有父子关系,必须将子类的异常变量放到父类前面,否则就会报错*/
}
}