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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 郑飞 高级黑马   /  2014-8-27 08:22  /  1234 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

刚开始做的时候感觉 就随便打印一下就能判断
后来才发现 return语句的执行不好看到结果
下面是我写的 用捕获异常 通过catch语句段来提示return的执行时间点
有问题请指出 谢谢
============================
/*
需求:用代码证明,在try中写了return,后面又写了finally,是先执行return还是先执行fianlly?

思路:1;定义带返回值为字符串的方法,在方法中使用try catch finally语句

          2:在这3个语句段里写入控制台输出语句 便于判断进入语句段的顺序

          3:让try中的return 的同时出现异常 并捕获打印到控制台 便于判断return执行的时间点

          4;有了第3步 就可以方便判断return与finally执行的顺序了
*/
class Test7
{
        public static void main(String[] args)
        {
                System.out.println(test());//
        }
        public static String test()
        {
                System.out.println("程序运行!");
                try
                {
                        System.out.println("开始执行try中的语句!");//开始运行try代码段
                        try
                        {
                                return 3/0+"";       
                        }
                        catch (Exception e)
                        {
                                System.out.println("由于return中有意让3除0,此处捕获异常成功,说明return已执行!");
                        }
                }
                catch (ArithmeticException e)
                {
                        System.out.println(e.toString());
                }
                finally
                {
                        System.out.println("执行finally中的语句!");//打印语句 说明执行了finally语句
                }
                return "程序结束!"; //程序完整需要 就写了个返回值
        }
}


3 个回复

倒序浏览
外层的try{}catch{}是不是没用、、、
回复 使用道具 举报
先学习学习
回复 使用道具 举报
lfs454766767 发表于 2014-8-27 08:32
外层的try{}catch{}是不是没用、、、

判断的就是外层的try中的return和finally运行顺序
catch是没用到 外层没异常
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马