难道不是尝试/抓住/最后是多余的吗?

时间:2019-06-27 11:01:15

标签: javascript php

在PHP,JS和其他应用程序中,无论是否引发异常,都在try / catch之后最后执行{}。但这不只是try / catch之后所有代码的功能吗?

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

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

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

executeMe();

1 个答案:

答案 0 :(得分:1)

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

在第二个代码段中,如果您要返回try或catch块,则executeMe()将不会执行。如果您在catch块中重新抛出异常(或另一个异常),也将无法达到该目标。随着最后,它将达到。 – haim770

因此,即使我跳回了函数,最终{}还是被解析了?返回是否被延迟,或者在没有方法/对象上下文的情况下在返回之后最终执行? – Zsolt Szilagyi

无论何时退出try / catch块,即使在返回时,最终也会在该块之前的上下文中执行– Aditya Jun