node.js - nodejs 使用的 Error 构造函数的参数是什么?

标签 node.js error-handling

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

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

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

我也可以这样设置它们:

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

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

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

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

最佳答案

您在 node.js 中使用的 Error 类不是特定于 Node 的类。它来自 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;

关于node.js - nodejs 使用的 Error 构造函数的参数是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28399339/

相关文章:

error-handling - 仅返回GraphQL中的子解析器错误

php - 有没有办法在 PHP 中捕获 MySQL 和数据库错误?

python - 当SQL语句不返回任何行时,停止Python引发错误

node.js - 带有node.js的mongodb中的地理空间索引

json - 使用 Express 4 在 Node.js 中解析 JSON 发布请求

node.js - Electron 应用程序找不到 sqlite3 模块

simdjson 库未捕获 C++ 异常

java - 错误未报告异常 ClassNotFoundException;必须被捕获或宣布被扔出

node.js - 在 Heroku NodeJS 服务器上运行 MochaJS 测试

javascript - Node.js 代码仅在带有 Sequelize 的文件顶部工作