本帖最后由 房建斌 于 2014-3-11 16:55 编辑
在func();中你抛出一个异常然后你又给catch了,所以调用func()方法,会先执行func()try里面的代码,抛出了异常,然后执行了catch里面的代码,输出A。然后执行了main方法中输出A,由于func()没有向外面抛出异常,所以main方法的catch没有执行,直接执行了System.out.println("D");输出D。
所以结果是AAD
程序的关键在于在func()中你throw new Exception()代表此处有异常,而对待此异常的方法,要么是在func()声明func() throws Exception,要么就是给try catch起来,这里你用了try catch。
|