没弄懂这2段代码的结果有何区别

解决方案 »

  1.   

    第一段代码:按异常处理流成会输出BAD(但这段代码是不能通过编译的,试图区捕获为抛出的异常)
    第二段代码:输出BACD
      

  2.   

    第一段代码:按异常处理流成会输出BAD(但这段代码是不能通过编译的,试图区捕获未抛出的编译时异常)
    第二段代码:输出BACD 
      

  3.   

    A不会出来的,抛出异常后面不会执行,
    第一段报错应该是因为syso("A")这句不可达
    这两段应该只是试下finally的感觉...没别的什么东西
      

  4.   

    第二段BCD
      

  5.   

    赞同楼上第一段是func( )方法抛出有异常,但是在方法内部就把异常解决了,输出B,因此不会执行main方法的catch块,直接输出D
    所以是BD
    第二段是showExce( )方法抛出异常,但是方法内部并没有解决异常,因此就由调用它的mian方法来解决,所以先执行catch块输出B,再执行finally块输出C,最后执行后续代码输出D
    所以是BCD楼主可以去了解下java的异常处理机制
      

  6.   

    第一段输出B D,但是打印A的语句要注释掉,否则将会由于不可达代码编译不通过。
    第一段异常在func被捕捉,所以打印B、又main没有捕捉到异常,所以不打印C,接着打印D第二段输出B C D,showExce throws Exception,所以Exception被main捕捉到,因此打印B,因为finally的存在因此打印C、打印D不解释
      

  7.   

    第一个CD,第二个ABCD?