有Return情况下的try catch finally执行顺序
来源:互联网 发布:设置数据的有效范围 编辑:程序博客网 时间:2024/05/22 01:41
情况一:try{} catch(){} finally{} return;
程序按正常顺序执行。
情况二:try{return} catch(){} finally{} return;
程序先执行try块中return之前的代码,再执行finally块中的代码,最后执行try块中的return。需要注意的是finally块中的代码无法影响try块中的return值,比如说:
private int i; private int test() { try { i++; return i; } catch (Exception e) { e.printStackTrace(); return i; } finally { i++; } }
即使在final块中执行了i++,但并不会影响try块中的返回值,即test方法返回1,但此时i=2。
情况三:try{ return } catch(){} finally{return}
程序执行try块中return之前(包括return语句中的表达式运算)代码,再执行finally块,因为finally块中有return所以提前退出,而不会执行try块中return。编译器把finally中的return实现为一个warning。
除此之外,在catch块中return以及有异常的情况下,也是同样的道理。
总结
任何执行try块或者catch块中的return语句之前,都会先执行finally语句, 如果finally中有return语句,那么就直接return了,不去执行try 块或者catch块中的return;如果finally块没有return语句,finally块是无法影响try块或者catch块中的return值的。
阅读全文
2 0
- 有Return情况下的try catch finally执行顺序
- try-catch-finally的执行顺序(有return的情况)
- 各种return情况下try,catch,finally的执行顺序
- 有return的情况下try catch finally的执行顺序的全面总结
- 有return的情况下try catch finally的执行顺序
- 有return的情况下try catch finally的执行顺序
- 有return的情况下try catch finally的执行顺序
- 有return的情况下try catch finally的执行顺序
- 有return的情况下try catch finally的执行顺序
- 有return的情况下try catch finally的执行顺序
- 有return的情况下try catch finally的执行顺序
- 有return的情况下try catch finally的执行顺序
- 有return的情况下try catch finally的执行顺序
- 有return的情况下try catch finally的执行顺序
- 有return的情况下try catch finally的执行顺序
- 在有return的情况下try catch finally的执行顺序
- 有return的情况下try catch finally的执行顺序
- 有return的情况下try catch finally的执行顺序
- Ubuntu 如何把内存当做硬盘使用
- Qt5中文乱码问题,解决
- 高并发编程必备基础总结
- opensips-cp搭建过程
- 【MR】经典的MapReduce(MapReduce 1) 运行机制
- 有Return情况下的try catch finally执行顺序
- 超实用的「Exception」和「Error」解决案例
- [LeetCode]447.Number of Boomerangs
- 安卓入门
- Android中定时执行任务的3种实现方法
- 存储过程中的游标使用
- FPGA中usb-blaster驱动的安装
- Appium 从安装到应用
- Spring 事务管理机制概述