为了账号安全,请及时绑定邮箱和手机立即绑定

try / catch / finally 不是多余的吗?

try / catch / finally 不是多余的吗?

PHP
偶然的你 2021-09-05 16:10:47
在 PHP、JS 等中,最后 {} 是在 try/catch 之后执行的,无论是否抛出异常。但这不就是try/catch之后所有代码的功能吗?这两个片段的行为应该完全相同:try {    throwException();} catch () {} finally () {    executeMe();}和try {    throwException();} catch () {}executeMe();
查看完整描述

1 回答

?
哈士奇WWW

TA贡献1799条经验 获得超6个赞

这些评论加起来是一个很好的答案:

在您的第二个代码段中,如果您在 try 或 catch 块中返回,则 executeMe() 不会被执行。如果您在 catch 块中重新抛出异常(或另一个异常),也不会达到它。最后,它将达到。– 海姆770

所以即使我跳出函数并返回,最后{} 也会被解析?返回然后延迟,还是在返回之后最终执行并且没有方法/对象上下文?– Zsolt Szilagyi

无论何时退出 try/catch 块,finally 都会在块之前的上下文中执行,即使在返回时也是如此 – Aditya Jun


查看完整回答
反对 回复 2021-09-05
  • 1 回答
  • 0 关注
  • 140 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信