gpt4 book ai didi

javascript - 将错误抛出到promise.catch之外

转载 作者:行者123 更新时间:2023-12-03 08:42:31 27 4
gpt4 key购买 nike

我对为什么此错误(如代码所示)同​​时触发Promise catch和try-catch感到困惑:

async dispatch => {
try {
let dataUrl = await getBlob(url).catch(ex => {
console.log(ex); <=== This triggers
return url;
});
}
catch (err) {
console.log(err); <=== This triggers
}
}

getBlob看起来像这样:
getBlob = url =>
fetch(url)
.then(response => {
if (response.ok) {
return response.blob();
} else {
throw new Error("..."); <=== Error thrown
}
})

最佳答案

这是因为您的getBlob()函数引发了一个错误,该错误触发了getBlob()的catch

现在,当该捕获被触发时,try/catch块将其视为失败,并最终触发外部捕获。

您可以有以下内容:

async dispatch => {
try {
let dataUrl = await getBlob(url);
}
catch (err) {
console.log(err); <=== This triggers
}
}

外部 catch将捕获 getBlob()的任何错误,而无需添加 catch
希望能有所帮助。

关于javascript - 将错误抛出到promise.catch之外,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60364013/

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