【问题标题】:cannot catch error in function called inside try catch block在 try catch 块内调用的函数中无法捕获错误
【发布时间】:2018-12-05 10:55:46
【问题描述】:

我在使用 nodejs 服务器中的一些异步函数时遇到问题。这是我第一次处理 try/catch 块,我无法在被调用函数中捕获错误。

我的代码:

calledFunction: async function() {
    try{
      //DO SOMETHING THAT RETURNS AN ERROR
    }
    catch(error) {
      //NEED TO CATCH THIS ERROR IN mainFunction()
      var error = {};
      error.error = err.message;
      return error;
    }
}

mainFunction: async function () {
    try {
      await this.calledFunction();
      return true;
    }
    catch(error) {
      var error = {};
      error.error = err.message;
      return error
    }
  }

【问题讨论】:

标签: javascript node.js try-catch


【解决方案1】:

您需要在 catch 块中重新抛出错误。

try{
  //DO SOMETHING THAT RETURNS AN ERROR
}
catch(error) {
  //NEED TO CATCH THIS ERROR IN mainFunction()
  var error = {};
  error.error = err.message;
  throw error; // Rethrow
}

如果您想了解更多信息,我的博客有more info on using async/await with try/catch

【讨论】:

  • 感谢您的回复!我尝试了您的解决方案,但它不起作用。当calledFunction() 运行时,我得到UnhandledPromiseRejectionWarning
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-12
  • 1970-01-01
  • 2016-05-29
  • 2014-03-04
  • 2023-01-14
相关资源
最近更新 更多