黑马程序员技术交流社区

标题: return 语句有终止语句的意思, [打印本页]

作者: 胡乃锋    时间: 2013-11-19 21:12
标题: return 语句有终止语句的意思,
为啥放在try{}语句块里面 finally{}语句块内的还执行啊 ,虽然finally内必须执行但这不和 return 矛盾了嘛


作者: 陈文杰    时间: 2013-11-19 21:37
class  ExceptionDemo5
{
        public static void main(String[] args)
        {
                Demo d = new Demo();

                try
                {
                        int x = d.div(4,-1);
                        System.out.println("x="+x);

                }
                catch (FuShuException e)
                {
                        System.out.println(e.toString());
                        return;
                        //System.exit(0);//系统,退出。jvm结束。
                }
                finally
                {
                        System.out.println("finally");//finally中存放的是一定会被执行的代码。
                }


                System.out.println("over");
        }
}
复制代码
只有return,除了捕获异常以外,还会打印finally里面的语句,但是不打印over。
如果写System.exit(0);  finally里面就不会执行! 系统,退出。jvm结束。
作者: 风逝    时间: 2013-11-19 21:43
finally 里的语句是一定执行的 不管try里发没发生异常
作者: Faner    时间: 2013-11-19 22:12
本帖最后由 Faner 于 2013-11-19 22:14 编辑
陈文杰 发表于 2013-11-19 21:37
class  ExceptionDemo5
{
        public static void main(String[] args)
回复错了 不好意思!  
作者: Faner    时间: 2013-11-19 22:14
finally 里的内容肯定会执行到的  有一种情况例外 就是 在finally 之前 直接退出jvm 了  那就不执行finally  了   总之 其他的不管什么情况 都会执行到 finally 里面的代码  
作者: zbgl    时间: 2013-11-19 22:27
finally和return没有必然的关系,finally是必须要执行的。不管return退出与否!




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