javascript - 捕获多个异步错误

标签 javascript typescript error-handling async-await try-catch

我正在尝试解决我的代码问题。我有一个引发错误的函数,并且正在尝试处理该错误,但由于某种原因,我的try/catch块无法捕获该错误。我认为它引发了两个错误,因为它确实进入了catch块,但是控制台仍然显示错误消息。有什么办法可以解决这个问题?谢谢

try{
    await renameItem(myID, newName); //The error is triggered by this line
} catch(error) {
   console.log("There was an error");
   await renameItem(myID, oldName);
   return;
}
预计重新命名函数将某些数据发布到另一个函数,该函数将验证数据并将其放入数据库中。如果数据无效,则会引发异常。

最佳答案

如果没有看到您的renameItem定义,就很难诊断出问题。但是,错误在控制台中显示的原因是您的try/catch不会处理catch块中的错误。您将必须在catch块内的try/catch中包装对namedItem的调用,这并不理想。我建议您将try/catch逻辑移到renameItem函数中,如果失败需要采取其他措施,则应在该范围内处理错误。同样,如果此方法的目的只是简单地重命名项目,而重命名失败,则不必重置旧名称。如果持久化到数据库,则尤其如此。如果数据库更新失败,则没有任何改变。

关于javascript - 捕获多个异步错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65192331/

相关文章:

php - 如何从Chrome浏览器找到空白屏幕的PHP错误?

error-handling - RestSharp GetAsync忽略响应错误状态码

javascript - meteor 和 Stripe 整合

javascript - ExtJS : Create JSB3 file from protected url

javascript - 使用具有两个不同 JSON 端点的 Highcharts drilldown 绘制条形图

typescript - 将属性名称动态添加到 typescript 界面

javascript - 如果用户输入与预定义字符串匹配,则返回 true

node.js - TS2307 : Cannot find module 'express'

SunburstR 图的 Javascript 排序

vb.net - 防止VB.Net中的HTMLAgilitypack错误