黑马程序员技术交流社区

标题: 求助:finally中的代码在哪几种情况下不会被执行? [打印本页]

作者: 万马奔腾    时间: 2014-6-1 20:15
标题: 求助:finally中的代码在哪几种情况下不会被执行?
本帖最后由 万马奔腾 于 2014-6-2 18:48 编辑

try、catch、finally时,有几种情况finally中的代码不会执行,各是什么情况?
作者: 相濡、彼岸    时间: 2014-6-1 20:19
finally 里面是一定要执行的内容!
作者: liang090214    时间: 2014-6-1 20:30
记着应该是必须执行吧。
作者: 万马奔腾    时间: 2014-6-2 18:48
相濡、彼岸 发表于 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里面死循环了,死锁了

还有的说突然断电的情况 。
哈哈。
作者: 冯云飞    时间: 2014-6-3 14:30
finally 在最后是一定会被执行的。。的的的。。。
作者: Conning    时间: 2014-6-4 00:10
楼上几位都说错了 finally只有在一种情况下是不执行的 就是jvm提前结束
具体代码是return语句前加一句System.exit(0);
作者: haio    时间: 2014-6-4 00:58
finally里面为一定执行语句,
特殊情况:在执行到finally之前退jvm
作者: 教皇    时间: 2014-6-4 07:27
地板同志说的对,finally只有一中情况不执行,当执行到System.exit(0); jvm就会提前结束。
作者: 侯金龙    时间: 2014-6-4 07:57
System.exit(0);虚拟机退出




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2