zoukankan      html  css  js  c++  java
  • finally 到底是什么时候执行的问题

    要弄清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的代码,但不会返回

    世间种种的诱惑,不惊不扰我清梦
  • 相关阅读:
    CCF-CSP题解 201509-4 高速公路
    CCF-CSP题解 201403-4 无线网络
    CCF-CSP题解 201512-4 送货
    2019年9月10日
    53. 最大子序和
    54. 螺旋矩阵
    59. 螺旋矩阵 II
    61. 旋转链表
    62. 不同路径
    70. 爬楼梯
  • 原文地址:https://www.cnblogs.com/javalisong/p/12218267.html
Copyright © 2011-2022 走看看