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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 侯晓谦 中级黑马   /  2015-6-21 21:54  /  206 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

关于先执行try语句里的return还是先执行finally
public class Test7 {
        @SuppressWarnings("finally")
        public static int value(){
                int i = 0;
                int j = 0;
                try{
                        i = 5;
                        return i/j;
                }catch(Exception e){
                        i = 7;
                        System.out.println("执行了return语句");
                        return i;
                }
                finally{
                        j = 1;
                        System.out.println("执行了finally语句");
                }
        }
       
        public static void main(String args[]){
               
                System.out.println("最终的值为: " + value());
                //结论:从输出上看,先输出了“执行return语句”,因此先执行了return,产生了异常,进入了catch,后执行了finally。
        }

}

因为先执行了catch语句,证明先执行try里的return,产生了异常,又输出了finally里的语句,证明无论什么情况都会执行finally语句,可用来写入关闭文件等操作。

1 个回复

倒序浏览
谢谢分享
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马