gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 19:27:09 27 4
gpt4 key购买 nike

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

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

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

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

executeMe();

最佳答案

这些评论加起来是一个不错的答案:

在您的第二个代码段中,如果您在 try 或 catch block 中返回,executeMe() 将不会被执行。如果您在 catch block 中重新抛出异常(或另一个异常),它也不会到达。有了finally,就会达成。 – haim770

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

finally 将在退出 try/catch block 时使用 block 之前的上下文执行,即使在返回时也是如此 – Aditya Jun

关于javascript - try/catch/finally 不是多余的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56789573/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com