试问,若在try语句块里有一个return语句,同时这个try语句块后面还有一个finally语句块,请问finally语句块里的代码会不会被执行?若答案是肯定的,那么会在什么时候被执行?是在retu
来源:互联网 发布:51单片机视频教程下载 编辑:程序博客网 时间:2024/05/17 06:38
这是一个很有趣的问题,我测试的结果是:是在return中间执行。
我在网上搜寻了一些资料,下面是参考代码:
1 /** 2 * 3 */ 4 package com.b510.test; 5 6 /** 7 * try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,还是在return之后执行? 8 * @author Hongten 9 * @date 2013-12-1010 */11 public class TestC {12 13 @SuppressWarnings("static-access")14 public static void main(String[] args) {15 System.out.println("结果: " + new TestC().test());16 }17 18 static int test(){19 int i = 1;20 try {21 System.out.println("try里面的i : " + i);22 return i;23 }finally{24 System.out.println("进入finally...");25 ++i;26 System.out.println("fianlly里面的i : " + i);27 }28 }29 }
输出结果:
try里面的i : 1进入finally...fianlly里面的i : 2结果: 1
下面是我在debug时,抓取的图片:
上图是程序执行到try模块里面:变量"i"的值的情况。
上图是程序执行到了try模块中的return语句时,按下F5键,进入到finally模块,执行finally模块中的语句后,变量"i"的值发生了变化。
上图是当程序执行完finally模块后,返回到return代码块。
但是在最后的运行效果中,我们看到的结果是:1,而不是我们想象中的:2
为什么会出现这样的情况:
0 0
- 试问,若在try语句块里有一个return语句,同时这个try语句块后面还有一个finally语句块,请问finally语句块里的代码会不会被执行?若答案是肯定的,那么会在什么时候被执行?是在retu
- try{}里有一个return语句,那么紧跟在这个try后的finally{}里的代码会不会被执行,是在return前还是后
- try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,还是在return之后执行?
- try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,还是在return之后执行?
- try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,还是在return之后执行?
- try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,还是在return之后执行?
- try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,还是在return之后执行?
- try {}里有一个return语句,那么紧跟在这个try后的finally {}里的代码会不会被执行,什么时候被执行?
- try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?
- try{}里有一个return语句,那么紧跟在这个try后的finally{}里的code会不会被执行,什么时候被执行,在return前还是后?
- try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?
- try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?
- try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后
- try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?
- try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?
- try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?
- try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?
- try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?
- eclipse导入dubbo项目
- JAVA异常处理
- iOS代理模式注意事项
- 求字符串中最长连续数字子串的长度
- Cordova 环境搭建及使用(下篇)
- 试问,若在try语句块里有一个return语句,同时这个try语句块后面还有一个finally语句块,请问finally语句块里的代码会不会被执行?若答案是肯定的,那么会在什么时候被执行?是在retu
- 重写jquery的ajax的error方法,可处理后台的权限验证,登陆超时等状态码
- listview加载性能优化ViewHolder
- RecyclerView列表控件漂亮时间线实现
- mysql update join sql语句总结
- 网络框架Volley和OkHttp总结
- javascript promise
- python连接mongodb数据库
- 常用正则表达式———为了少板砖