zoukankan      html  css  js  c++  java
  • try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?

    根据java规范:在try-catch-finally中,如果try-finally或者catch-finally中都有return,则两个return语句都执行并且最终 
    返回到调用者那里的是finally中return的值;而如果finally中没有return,则理所当然的返回的是try或者catch中return的值,但是 
    finally中的代码是必须要执行的,而且是在return前执行,除非碰到exit()。

    以下例子证明了上述说法:

    public  class Testfinal {

        public static void main(String[] args) {

           // TODO Auto-generated method stub

          // System.out.println( new  Test().test() );;
           System.out.println(new Testfinal().test());
        }

     

        int test()

        {

           try

           {

               return func1();

           }

           finally

           {

               return func2();

           }

        }

        

        int func1()

        {

           System.out.println("func1");

           return 1;

        }

        int func2()

        {

           System.out.println("func2");

           return 2;

        }   

    }
    运行结果:

  • 相关阅读:
    asp.net+Sqlserver 通过存储过程读取数据
    文字半透明显示在图片上
    饼形统计图
    折线统计图
    柱状统计图
    关于phonegap
    codesmith的使用
    asp.net读取Access数据库。
    Tomcat7.0安装配置
    freemarker数字格式化
  • 原文地址:https://www.cnblogs.com/Rosefxd/p/3103763.html
Copyright © 2011-2022 走看看