有如下代码片断:
try{
throw new ExampleB("b")
}catch(ExampleA e){
System.out.println("ExampleA");
}catch(Exception e){
System.out.println("Exception");
}
请问执行此段代码的输出是什么?
输出:ExampleA。(根据里氏代换原则[能使用父类型的地方一定能使用子类型],抓取ExampleA类型异常的catch 块能够抓住try 块中抛出的ExampleB类型的异常)
面试题-说出下面代码的运行结果。(此题的出处是《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!
Was this helpful?
0 / 0