首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Java中从finally块返回

在Java中从finally块返回
EN

Stack Overflow用户
提问于 2008-09-07 03:15:59
回答 3查看 66.3K关注 0票数 184

最近我很惊讶地发现,在Java中可以在finally块中使用return语句。

似乎很多人认为像“Don't return in a finally clause”中描述的那样做是一件坏事。再深入一点,我还发现了'Java's return doesn't always‘,它在finally块中显示了一些非常可怕的其他类型的流控制示例。

所以,我的问题是,谁能给我一个例子,在finally块中的return语句(或其他流控制)可以产生更好的/更好的可读性的代码?

EN

Stack Overflow用户

发布于 2008-09-07 03:31:57

将控制结构和返回添加到finally{}块只是“因为你可以”滥用的另一个例子,这种滥用实际上分散在所有开发语言中。Jason的建议是正确的,它很容易成为维护的噩梦-反对函数提前返回的论点更适用于这种“延迟返回”的情况。

Finally块的存在只有一个目的,那就是允许您完全清理自己,而不管前面的代码中发生了什么。这主要是关闭/释放文件指针、数据库连接等,尽管我可以看到它被延伸到添加定制审计。

任何影响函数返回的东西都应该在try{}块中。即使你有一个方法,你检查了一个外部状态,做了一个耗时的操作,然后再次检查该状态,以防它变得无效,你仍然希望在try{}中进行第二次检查-如果它位于finally{}中,并且long操作失败,那么你将不必要地第二次检查该状态。

票数 13
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48088

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档