首先说执行结果吧:
B
C
D
原因:首先程序以main方法为入口,进入main函数后调用func方法,在func方法中你使用了try和finally语句块,在这里不管执行try语句块是否出现异常都会执行finally语句块,所以会打印B
然后继续分析main方法,main方法的try语句块中的func方法抛出了Exception异常所以A不会打印,并且会被catch 捕获所以直接跳到catch语句块中执行打印C
main执行完try-catch语句块后继续执行下一行程序,所以打印D,至此main执行完毕,程序结束。
另外,之所以在func方法声明中要用throws关键字声明此方法可能会抛出异常Exception,是因为在func函数中你throw了一个Exception异常,但是你没有用catch语句去捕获处理,这样就必须声明func方法会抛出异常,方便在调用func方法的方法中处理。 作者: 快乐Anne 时间: 2015-6-25 19:01