首页 > 其他 > 详细

finally 到底是什么时候执行的问题

时间:2020-01-20 16:33:50      阅读:108      评论:0      收藏:0      [点我收藏+]

要弄清finally到底是什么时候执行的,那就一定要把try catch return放在一起来比较了。

实验代码:

 public static int ff(){
        Scanner scanner = new Scanner(System.in);
        String str=scanner.next();
        try {
            int i=Integer.valueOf(str);
            i++;
            System.out.println("try");
        }catch (NumberFormatException e) {
            System.out.println("catch");
            return 1;
        }finally {
            System.out.println("finally");
            return 0;
        }
    }

    public static void main(String[] args) {
       System.out.println(ff());
    }

这个代码你在控制台输入数字就进入try里面,输入字母,就进入catch里面。

大家可以分情况来试验一下,比如什么try里面有return,finally里面有return,到底返回那个return值的问题。

我的结论:

1.执行顺序,try->finally->return,或者try->catch->finally->return

2.finally如果有return,这一定是返回finally里面return的值,即使其他地方有return,会执行return的代码,但不会返回

finally 到底是什么时候执行的问题

原文:https://www.cnblogs.com/javalisong/p/12218267.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!