javascript - Node.js v12.x 如何设置 Error.code 属性?
问题描述
在较新版本的 Node(我相信是 9 版之后)中,他们已经标准化了返回包含诸如 error.code 之类的属性的 Error 对象。我尝试构建一个 Error 对象并设置属性,但得到一个错误:
let err = new Error('sample error');
error.code = 'BADERR';
在 Error 类中利用新的 node.js 属性的正确方法是什么?
解决方案
使用现代 javascript,您只需扩展Error
类:
class BadError extends Error {
constructor (message) {
super(message);
this.code = 'BADERR';
}
}
用法:
let err = new BadError('sample error');
传统上你会做同样的事情,但使用原型:
function BadError (message) {
this.message = message;
this.code = 'BADERR';
}
BadError.prototype = new Error();
或者稍微不那么传统但仍然传统的方式:
function BadError (message) {
this.message = message;
this.code = 'BADERR';
}
BadError.prototype = Object.create(Error.prototype);
推荐阅读
- mysql - 如何为原始表和左连接创建条件?
- node.js - Node/Express/Request 中的内存泄漏
- sql - Kusto 查询动态排序(基于字段的计数)
- android - 工具栏标签和 TabLayout 格式不正确
- javascript - 这个脚本可以用来创建多个 SVG 元素吗?
- sql-server - SSIS 无法访问每个人都可以访问的文件夹
- datetime - 在 Hive 中将字符串转换为带有日期和时间的日期
- python - Heroku 找不到应用程序错误
- laravel - laravel eloquent - 在嵌套的急切加载关系上不使用
- android - RecyclerView 的稳定 ID 与 DiffCallback