单项选择题

检查下面的代码:
 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
微信扫码免费搜题