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

What are the arguments for the Error constructor function that nodejs uses?

我知道您可以向构造函数传递这样的消息:

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

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

我也可以这样设置:

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

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

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

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

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

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

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

其中 fileNamelineNumber 不是标准功能。

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

// 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;