在try catch块内部调用的函数中无法捕获错误

时间:2018-06-26 16:30:49

标签: javascript node.js try-catch

我在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
    }
  }

1 个答案:

答案 0 :(得分:0)

您需要在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