try-catch-finally语句中有return语句时的执行情况
来源:互联网 发布:2017淘宝网红店铺排名 编辑:程序博客网 时间:2024/06/05 07:16
在try中没有异常的情况下try、catch、finally的执行顺序 try --- finally
如果try中有异常,执行顺序是try --- catch --- finally
如果try中没有异常并且try中有return这时候正常执行顺序是try ---- finally --- return
如果try中有异常并且try中有return这时候正常执行顺序是try----catch---finally--- return
总之 finally 永远执行!
如果try中没有异常并且try中有return这时候正常执行顺序是try ---- finally --- return
如果try中有异常并且try中有return这时候正常执行顺序是try----catch---finally--- return
总之 finally 永远执行!
try-catch-finally里都没有return ,finally 之后有个return ,如果try中有异常,finally执行完后,还能执行return吗?那是不可能执行的了,try中有异常以后,根据java的异常机制先执行catch后执行finally,此时错误异常已经抛出,程序因异常而终止,所以你的return是不会执行的
try中有return语句
-------- try catch finally顺序:
1.try {}.
2.如果有Error Exception则,执行catch(){}中的代码。
3.无论有没有 Error Exception都要执行finally{}中的代码。
4.执行 try 中的 return
catch中有return
int ret = 0;try{throw new Exception();}catch(Exception e){ret = 1;return ret;}finally{ret = 2;}
这里finally中没有return,但是将catch中要return的ret赋值为2.那么最后返回的值是1. 为什么?
从调试中可以知道Finally中的赋值语句的确被执行了,而执行完这条finally语句后的下一条语句就是catch中的return,那么为啥返回的是1呢?
catch中有return,finally中没有return,return的值在执行finally之前已经确定下来了。
另一个值得注意的是最后的return(位于try-catch-finally外)并没有被执行。
转自:http://blog.sina.com.cn/s/blog_74be444c0100vlqa.html
0 0
- try-catch-finally语句中有return语句时的执行情况
- try catch finally语句中含有return语句的执行情况
- try{}catch(){}finally{}语句中return的执行情况
- try catch finally中有return语句的执行情况及原因分析
- Java中try catch finally语句中含有return语句的执行情况(总结版)
- Java中try catch finally语句中含有return语句的执行情况(总结版)
- Java中try catch finally语句中含有return语句的执行情况(总结版)
- Java中try catch finally语句中含有return语句的执行情况
- Java中try catch finally语句中含有return语句的执行情况(总结版)
- Java中try catch finally语句中含有return语句的执行情况(总结版)
- Java中try catch finally语句中含有return语句的执行情况(总结版)
- Java中try catch finally语句中含有return语句的执行情况(总结版)
- Java中try catch finally语句中含有return语句的执行情况(总结版)
- Java中try catch finally语句中含return语句的执行情况总结-编程陷阱
- Java中try catch finally语句中含有return语句的执行情况(总结版)
- Java中try catch finally语句中含有return语句的执行情况(总结版)
- Java中try catch finally语句中含有return语句的执行情况(总结版)
- Java中try catch finally语句中含有return语句的执行情况(总结版)
- 状态模式
- 黑马程序员-C语言基础学习(一)
- 【修正二叉树】Recover Binary Search Tree
- 设计模式学习(1)——创建型设计模式
- (31)ExtJS之Panel面板锚定位中的参考边定位
- try-catch-finally语句中有return语句时的执行情况
- HDU 4341 Gold miner (分组背包)
- C++编程练习——2014/3/12
- (32)ExtJS之Panel中Absolute绝对位置布局
- tomcat的三个效率问题
- (33)ExtJS之Panel中的表格布局
- 转:土匪的2013书单推荐
- 电平触发方式注意
- Chef Sereja and Sorting 2