繁体   English   中英

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

[英]Isn't try / catch / finally redundant?

在 PHP、JS 等中,最后 {} 是在 try/catch 之后执行的,无论是否抛出异常。 但这不就是try/catch之后所有代码的功能吗?

这两个片段的行为应该完全相同:

try {
    throwException();
} catch () {
} finally () {
    executeMe();
}

try {
    throwException();
} catch () {
}

executeMe();

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM