本文介紹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ò)誤處理。