finally问题

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());; 
 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值