在PHP,JS和其他应用程序中,无论是否引发异常,都在try / catch之后最后执行{}。但这不只是try / catch之后所有代码的功能吗?
这两个代码片段的行为应完全相同:
try {
throwException();
} catch () {
} finally () {
executeMe();
}
和
try {
throwException();
} catch () {
}
executeMe();
答案 0 :(得分:1)
这些评论加起来是一个不错的答案:
在第二个代码段中,如果您要返回try或catch块,则executeMe()将不会执行。如果您在catch块中重新抛出异常(或另一个异常),也将无法达到该目标。随着最后,它将达到。 – haim770
因此,即使我跳回了函数,最终{}还是被解析了?返回是否被延迟,或者在没有方法/对象上下文的情况下在返回之后最终执行? – Zsolt Szilagyi
无论何时退出try / catch块,即使在返回时,最终也会在该块之前的上下文中执行– Aditya Jun