更新时间:2019-09-16 11:06
用户函数在运行后,会产生2种类型的错误:
函数计算系统会将错误信息编码为 json 字符串返回。
当用户捕获错误并通过 callback(err) 返回时,如果参数 err 是 Error 类型的对象,调用栈信息(stack trace)也会被返回。
// User function.
exports.handler = function(event, context, callback) {
var error = new Error("something is wrong");
callback(error);
};
// Function response.
{
"errorMessage": "something is wrong",
"errorType": "Error",
"stackTrace": [
"export.handler (/var/task/index.js.3:16)"
]
}
如果 callback 参数是非 Error 类型的对象,调用栈信息将不会被返回。
// User function.
exports.handler = function(event, context, callback) {
callback("something is wrong");
};
// Function response.
{
"errorMessage": "something is wrong"
}
当用户逻辑未捕获到错误时,函数计算系统会尽可能捕获错误,并返回具体的信息。当遇到系统也无法捕捉的错误,例如用户函数在运行过程中突然崩溃退出,系统会返回一个通用的错误消息。
错误类型 | 场景示例 | 错误消息 |
---|---|---|
Handled | 通过 callback(err) 返回错误,其中 err 是 error 类型 | {“errorMessage”: “oops”, “errorType”: “Error”, “stackTrace”: [“exports.handler (/var/task/index.js:5:14)”]} |
Handled | 通过 callback(obj) 返回错误,其中 obj 是非错误类型的对象 | {“errorMessage”: “oops”} |
Unhandled | 函数依赖的模块并不存在 | {“errorMessage”: “Cannot find module ‘/code/X.js”} |
Unhandled | 指定的处理函数并不存在 | {“errorMessage”: “Handler ‘X’ missing on module ‘Y’”} |
Unhandled | 函数执行超时 | {“errorMessage”: “Task timed out after X seconds”} |
Unhandled | 用户函数发生异常错误 | {“errorMessage”: “Process exited unexpectedly before completing request”} |
在文档使用中是否遇到以下问题
更多建议
匿名提交