不能在finally块使用return
2011-07-12 08:11
246 查看
错误案例
【现象描述】try-catch块中永远返回finally中return的值【错误代码】
static boolean f() { try { return true; } finally { return false; } }
错误分析
在这个应用场景中,不要用return来退出finally语句块,因为finally语句块都会被执行到,这样try程序块中执行正常也会在finally中退出,不会再回到try程序块中。Try-catch的流程说明:
try { … … return true; }catch(异常){ … } finally { … } }1,try-catch-finally,
如果try语句块遇到异常,try下面的代码就不执行了,转而执行catch语句块,执行完再执行finally语句块,最后结束。2,try-finally,
如果在try语句块中执行到return语句前一条,未遇到异常,转而执行finally语句块,执行完再执行try中的return语句。不要用return、break、continue或throw来退出finally语句块
正确用法
//该方法返回falsestatic boolean f() { try { return true; } finally { //不做return操作 } }
相关文章推荐
- MySQL 存储过程不能使用return的解决方法
- 支付宝集成,return_url真的不能使用自定义参数吗,是可以的!
- CoreJava_不要在finally块中使用return关键字
- try..catch..finally块中的跳转语句(return,break,continue)使用注意事项
- finally块中不允许使用return,continue或break的原因
- mysql 存储过程中不能使用 return 的解决办法
- 不能在finally块中return
- mysql存储过程中不能使用return的解决办法
- 使用javap分析finally块中return值(续1)
- vfork()在使用过程中不能使用return 0
- 关于js中each()使用return不能终止循环
- finally块中不允许使用return,continue或break的原因
- jsp不能使用return时候,如何在出异常时退出,不在向下执行
- finally 中不能使用写return
- java异常体系---不要在finally块中使用return、throw
- 使用javap分析finally块和return值
- 【C语言】把从1到1000的数打印出来,但你不能使用任何的循环语句或是条件语句。
- .9图片不能使用问题(Android开发)
- 解决虚拟机键盘不能使用,或能使用但会模糊错乱的问题
- 使用内部包含关系的组合选择器时,它们之间不能加空格;当使用层次关系的组合选择器时,他们之间要有空格