版权声明: https://blog.csdn.net/qq_36652405/article/details/80379148
Java多重异常处理的两种方式:1.用 try···catch···catch 来处理多个异常
2. try···catch,只用一个catch来处理多个异常
第一种方式:用多个catch来处理异常
package OOP;
public class HandleMoreException1 {
//处理多个异常
public static void main(String[] args) {
int a=10;
int b=0;
int c=0;
//方式一:使用try···catch··· 来捕获多个异常
try {
//定义一个数组
int []arr= {6,7,5,1,7,4,7,4,5};
System.out.println(arr[8]);
c=a/b;
//如果出现数组越界异常将执行下面第一个catch中的代码
}catch( ArrayIndexOutOfBoundsException e){
System.out.println("数组越界异常");
//如果出现数学界异常将执行下面的catch中的代码
}catch(ArithmeticException e) {
System.out.println("数学异常");
}
}
}
方式二:用一个catch来处理异常
package OOP;
public class HandleMoreException2 {
//处理多个异常
public static void main(String[] args) {
int a=10;
int b=0;
int c=0;
//方式二:只使用一个 catch 来捕获多个异常,这就要用到多态了。
try {
//定义一个数组
int []arr= {6,7,5,1,7,4,7,4,5};
System.out.println(arr[8]);
c=a/b;
//在多态中,子类的实例可以赋给父类引用
//因为这些异常都是在Exception类的子类,所以我用Exception来接收子类的异常对象
}catch(Exception e){
//用instanceof 运算符来检查它的类型
if(e instanceof ArithmeticException) {
System.out.println("这是个数学异常");
}else {
System.out.println("这是个数组越界异常");
}
}
}
}
无论是数组越界异常还是数学异常,只要程序发生异常,系统就会自动生成一个异常对象,该异常对象被提交给Java运行时的环境,这个过程被称为 抛出(throw)异常。
当Java运行时环境收到异常对象时,会寻找能处理该对象的 catch 块,如果找到合适的 catch 块,那么就会把该异常对象交给该 catch 块处理,这个过程被称为 捕获(catch)异常,如果java运行时环境找不到捕获异常合适的 catch 块,则运行时环境终止,Java程序也将退出。
希望能该博客能给你提供一点帮助