finally问题

来源:互联网 发布:电脑数据丢失怎么办 编辑:程序博客网 时间:2024/06/18 10:16

finally:异常处理try语句的组成部分,finally中代码总会被执行,如下代码,返回的是1,原因是执行try中的return时,返回,但是这里并没有退出函数,而只是将函数值返回到了函数中间值中(相当于一个桶中),然后在执行finally中语句,虽然执行了x++,但是最终函数返回1。


注:如果打开finally中return,那么返回的结果将是2,因为此时的return又将结果返回到了函数中间值中,覆盖了原来的值。


<span style="white-space:pre"></span>        static int test()      {         int x = 1;         try         {         return x;        }         finally         {         ++x;        return x;        }            } <pre name="code" class="java"><span style="white-space:pre"></span>System.out. println (new Test().test());; 


0 0