gpt4 book ai didi

Javascript Try Catch 与 Catch 链

转载 作者:行者123 更新时间:2023-11-28 16:56:54 29 4
gpt4 key购买 nike

我最近遇到了一个 Javascript 问题,捕获错误,因此在抛出异常时崩溃。

  • funcReturnPromise().then().catch()

我必须将其更改为:

try {
funcReturnPromise().then()
} catch (e) {
...
}

找不到合适的解释,有没有 JS 向导可以启发 JS 农民?

最佳答案

如果funcReturnPromise()可以同步抛出(返回 Promise 的函数通常不应该这样做),那么您必须使用 try/catch 捕获该同步异常,正如您在使用常规 .then() 时发现的那样.

这是一个地方 async函数可以帮助你。例如,如果您声明 funcReturnPromiseasync ,那么它抛出的同步异常将自动成为被拒绝的 Promise,并且调用者永远不会暴露于同步异常。

或者,如果调用者(此处的代码)使用await,那么您可以使用相同的 try/catch 捕获同步异常和拒绝的 promise 。 .

例如,您可以这样做:

async function myFunc()
try {
let result = await funcReturnPromise();
console.log(result);
} catch (e) {
// this catches both a rejected promise AND
// a synchronously thrown exception
console.log(e);
}
}

关于Javascript Try Catch 与 Catch 链,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58908381/

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