Java多重异常处理的两种方式

版权声明: 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程序也将退出。

希望能该博客能给你提供一点帮助


猜你喜欢

转载自blog.csdn.net/qq_36652405/article/details/80379148
今日推荐