浏览 1244 次
锁定老帖子 主题:(九):Java中异常执行流程
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-02-27
最后修改:2009-03-03
public class ExceptionExecuteTest { public static void main(String[] args){ try { String s = null; return; } catch (RuntimeException e) { System.out.println("exception"); }finally{ System.out.println("finally"); } } } 问题1:上面的程序能否编译通过?如果能,打印结果是什么?如果不能,请说明理由。 解答:能编译通过。打印结果是finally。 问题2:上面的程序将return;注释掉,添加语句System.exit(0);语句,能否编译通过?如果能,结果是什么?如果不能,请说明理由。 解答:能编译通过。结果是什么都不输出。分析:System.exit(0);表示程序正常退出,让虚拟机终止当前的程序。当try中有System.exit(0);方法被调用的时候,它就不会去执行finally里面的内容,这是一个特例。所以这个程序不输出任何结果。 总结:异常的执行流程:在try语句中有返回return;如果后面有finally的话,那么它会在执行return之前,程序跳到finally里面去执行,把finally里面的代码执行完之后在去执行return;方法返回。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |