单项选择题
检查下面的代码:
class E1 extends Exception{}
class E2 extends E1{}
public class Quiz6_l{
public static void f(boolean flag) throws E1,E2{
if(flag) {
throw new E1();
} else {
throw new E2();
}
}
public static void main(String[] args) {
try{
f(true);
}
catch(E2 e2) {
System.out.println("Caught E2");
}catch(E1 e1) {
System.out.println("Caught El");
}
}
}
对上面的程序进行编译、运行,下面的叙述哪个是正确的:
A.由于Qoiz6_1.main方法中没有声明抛出异常E1、E2,所以编译会失败
B.由于针对E2的catch程序块是无法执行到的,所以编译会失败
C.编译成功,输出为: Caught El Caught E2
D.编译成功,输出为: Caught E1