一道面试题,关于java的异常处理的
本文介绍了一道面试题,关于java的异常处理的的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
class Annoyance extends Exception {}
class Sneeze extends Annoyance {}
class Human {
public static void main(String[] args)
throws Exception {
try {
try {
throw new Sneeze();
}
catch ( Annoyance a ) {
System.out.println("Caught Annoyance");
throw a;
}
}
catch ( Sneeze s ) {
System.out.println("Caught Sneeze");
return ;
}
finally {
System.out.println("Hello World!");
}
}
}
下面公布输出结果以及我的问题,如果没遇到这个问题的可以先想想输出结果是什么
请输入代码
输出
Caught Annoyance
Caught Sneeze
Hello World!
我的思路是这样的,首先抛出 throw new Sneeze();被它的父类Annoyance的catch块接受到,打印Caught Annoyance
接着抛出父类Annoyance对象,该对象不能被子类接受到吧,所以应该是捕捉不到,但是程序运行的结果还是捕捉到了并打印Caught Sneeze。
这是为什么呢?
解决方案
你
throw new Sneeze();
为何不能被?
} catch (Sneeze s) {
System.out.println("Caught Sneeze");
return;
}
这篇关于一道面试题,关于java的异常处理的的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文