在 PHP、JS 等中,最后 {} 是在 try/catch 之后執(zhí)行的,無論是否拋出異常。但這不就是try/catch之后所有代碼的功能嗎?這兩個(gè)片段的行為應(yīng)該完全相同:try { throwException();} catch () {} finally () { executeMe();}和try { throwException();} catch () {}executeMe();
1 回答

哈士奇WWW
TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超6個(gè)贊
這些評(píng)論加起來是一個(gè)很好的答案:
在您的第二個(gè)代碼段中,如果您在 try 或 catch 塊中返回,則 executeMe() 不會(huì)被執(zhí)行。如果您在 catch 塊中重新拋出異常(或另一個(gè)異常),也不會(huì)達(dá)到它。最后,它將達(dá)到。– 海姆770
所以即使我跳出函數(shù)并返回,最后{} 也會(huì)被解析?返回然后延遲,還是在返回之后最終執(zhí)行并且沒有方法/對(duì)象上下文?– Zsolt Szilagyi
無論何時(shí)退出 try/catch 塊,finally 都會(huì)在塊之前的上下文中執(zhí)行,即使在返回時(shí)也是如此 – Aditya Jun
- 1 回答
- 0 關(guān)注
- 161 瀏覽
添加回答
舉報(bào)
0/150
提交
取消