本文介紹Node.js運(yùn)行環(huán)境的錯(cuò)誤處理,包括錯(cuò)誤類型和異常信息。

錯(cuò)誤類型

Node.js函數(shù)的錯(cuò)誤類型包含以下兩種:
  • HandledInvocationError:通過callback的第一個(gè)參數(shù)返回的錯(cuò)誤。

    執(zhí)行以下命令調(diào)用callback命令。

    exports.handler = function(event, context, callback) {
      callback(new Error('oops'));
    };

    收到的響應(yīng)示例如下所示。

    {
      "errorMessage":"oops",
      "errorType":"Error",
      "stackTrace":[
        "Error: oops","    at exports.handler (/code/index.js:2:12)"
      ]}
  • FunctionUnhandledError:函數(shù)計(jì)算為您捕獲到異常后返回的錯(cuò)誤。

    當(dāng)您的代碼拋出異常且未捕獲時(shí),函數(shù)計(jì)算會(huì)為您捕獲錯(cuò)誤,并返回錯(cuò)誤信息。

    exports.handler = function(event, context, callback) {
      throw new Error('oops');
    };

    收到的響應(yīng)示例如下所示。

    {
      "errorMessage":"oops",
      "errorType":"FunctionUnhandledError: Error",
      "stackTrace":[
        "Error: oops","    at exports.handler (/code/index.js:2:9)"
      ]}

    如果您的函數(shù)在運(yùn)行過程中主動(dòng)退出,系統(tǒng)會(huì)返回一個(gè)通用的錯(cuò)誤信息。

    exports.handler = function(event, context, callback) {
      process.exit(1);
    };

    收到的響應(yīng)示例如下所示。

    {
      "errorMessage":"Process exited unexpectedly before completing request (duration: 6ms, maxMemoryUsage: 49MB)"
    }

異常信息

異常信息包含如下三個(gè)字段:
字段 類型 說明
errorMessage String 異常信息。
errorType String 異常類型。
stackTrace List 異常堆棧。

更多錯(cuò)誤類型,請(qǐng)參見錯(cuò)誤處理