java try catch 异常捕获练习

java try catch 异常捕获练习

1. 写出下列程序运行结果。

题目:
public class Test{
	public static void mb_createException(){
		throw new ArrayIndexOutOfBoundsException();
	}
	public static void mb_method(){
		try{
			mb_createException();
			System.out.print("a");
		}catch(ArithmeticException e){
			System.out.print("b");
		}finally{
			System.out.print("c");
		}
		System.out.print("d");
	}
	public static void main(String args[]){
		try{
			mb_method();
		}catch(Exception e){
			System.out.print("m");
		}
		System.out.print("n");
	}
}
解答:
  1. 程序运行后先进入主函数main(),执行try语句,通过如下所示的调用生成了异常ArrayIndexOut OfBoundsException,随后在mb_method()函数中便率先开始了异常捕获机制,“a”并未输出。
mian()
mb_method()
mb_createException()
ArrayIndexOutOfBoundsException()
  1. 而ArrayIndexOutOfBoundsException 是 Exception类的子类,按照如下的顺序向上寻找对应的catch异常处理
IndexOutOfBoundsException ArrayIndexOutOfBoundsException RuntimeException Exception
  1. 异常生成后首先由mb_method()处理,由于ArithmeticException与该异常无直系关系,不会输出“b”,函数中的catch无法捕获,导致mb_method()后续代码无法执行,即无法打印“d”,在草草执行finally输出"c"后本函数便结束了。

  2. 回到主函数main(),通过三层寻找终于由Exception成功捕获了ArrayIndexOutOfBounds Exception,执行catch中的代码块输出"m",成功捕获异常后后续代码得以执行,输出“n”。

下为程序运行结果:

cmn
posted @ 2021-07-09 20:32  SKPrimin  阅读(84)  评论(0编辑  收藏  举报