nodejs使用的Error构造函数的参数是什么?

时间:2015-02-08 21:03:37

标签: node.js error-handling

我知道你可以向Constructor传递这样的信息:

err = new Error('This is an error');

但是它有更多的参数可以处理,如错误名称,错误代码等......?

我也可以像这样设置它们:

err.name = 'missingField';
err.code = 99;

但为了简洁起见,我希望将它们传递给构造函数,如果它可以接受它们。

我可以包装该函数,但只在需要时才想这样做。

构造函数或文档的代码在哪里?我在网上搜索过,nodejs.org网站和github并没有找到它。

1 个答案:

答案 0 :(得分:2)

您在node.js中使用的Error类不是特定于节点的类。它来自JavaScript。

MDN所述,Error构造函数的语法如下:

new Error([message[, fileName[, lineNumber]]])

fileNamelineNumber不是标准功能。

要合并自定义属性,您可以手动将其添加到Error类的实例,也可以创建自定义错误,如下所示:

// Create a new object, that prototypally inherits from the Error constructor.
function MyError(message, code) {
  this.name = 'MyError';
  this.message = message || 'Default Message';
  this.code = code;
}
MyError.prototype = Object.create(Error.prototype);
MyError.prototype.constructor = MyError;