代码之家  ›  专栏  ›  技术社区  ›  claudiomatiasrg

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

  •  0
  • claudiomatiasrg  · 技术社区  · 8 年前

    我在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 回复  |  直到 8 年前
        1
  •  0
  •   vkarpov15    8 年前

    您需要重新检查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 如果你想了解更多。