A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 万马奔腾 于 2014-6-2 18:48 编辑

try、catch、finally时,有几种情况finally中的代码不会执行,各是什么情况?

8 个回复

倒序浏览
finally 里面是一定要执行的内容!
回复 使用道具 举报
记着应该是必须执行吧。
回复 使用道具 举报
相濡、彼岸 发表于 2014-6-1 20:19
finally 里面是一定要执行的内容!

执行了finally前执行了System.exit(0).例如:
public class Test1 {

public static void main(String[] args) {


        try {
                        System.exit(1);
                } catch (Exception e) {
                        e.printStackTrace();
                } finally {
                        System.out.println("main is over.");
                }
        }
}

try里面死循环了,死锁了

还有的说突然断电的情况 。
哈哈。
回复 使用道具 举报
finally 在最后是一定会被执行的。。的的的。。。
回复 使用道具 举报
楼上几位都说错了 finally只有在一种情况下是不执行的 就是jvm提前结束
具体代码是return语句前加一句System.exit(0);
回复 使用道具 举报
haio 中级黑马 2014-6-4 00:58:27
7#
finally里面为一定执行语句,
特殊情况:在执行到finally之前退jvm
回复 使用道具 举报
地板同志说的对,finally只有一中情况不执行,当执行到System.exit(0); jvm就会提前结束。
回复 使用道具 举报
System.exit(0);虚拟机退出
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马