在较新版本的 Node(我相信是 9 版之后)中,他们已经标准化了返回包含诸如 error.code 之类的属性的 Error 对象。我尝试构建一个 Error 对象并设置属性,但得到一个错误:
let err = new Error('sample error');
error.code = 'BADERR';
在 Error 类中利用新的 node.js 属性的正确方法是什么?
最佳答案
使用现代 javascript,您只需扩展 Error
类(class):
class BadError extends Error {
constructor (message) {
super(message);
this.code = 'BADERR';
}
}
用法:let err = new BadError('sample error');
传统上你会做同样的事情,但使用原型(prototype):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);
关于javascript - Node.js v12.x 如何设置 Error.code 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64327686/