我正在 Docker 容器中运行自动化测试,并在此环境中使用浏览器。我担心在下面的场景中浏览器是否正确关闭。我的代码包含一个带有早期返回语句的 try 块。我的问题是:在 JavaScript 中,如果我在 try 块中执行提前返回,finally 块是否仍会被触发?我想确保在我的基于 Docker 的测试环境中正确关闭浏览器。
try {
await importWallet(params.seedPhrase, page, extensionId)
await addNetwork({networkName: 'BTC', page, extensionId})
await connectWallet(context, page)
return await sendToken({page, params})
}
finally {
await context.close()
console.log('🌂 Closing browser')
}
我运行了测试,但无法验证它,因为它在 Docker 容器中运行。
try 语句定义了要运行(尝试)的代码块。
catch 语句定义了一个代码块来处理任何错误。
finally 语句定义了一个无论结果如何都会运行的代码块。
throw 语句定义自定义错误。
因此,对于您的问题,当您运行错误处理时,Finally 语句肯定会起作用。