javascript - Node.js v12.x 如何设置 Error.code 属性?

标签 javascript node.js error-handling

在较新版本的 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/

相关文章:

django - 自定义500错误有时会出现空白页

javascript - 使用 ng-repeat 动态加载指令

node.js - 使用 node.js 的 NTLM 身份验证

javascript - 响应中搜索词的匹配列表

java - 有没有办法查看发送到 Java 方法中的参数值?

vb.net - 尝试多种捕获行为

javascript - 我的函数没有产生期望的结果

Javascript - 使用参数引用全局函数的匿名函数中的闭包 - 如何使用 PreventDefault?

javascript - parent.jQuery.fancybox.close();从 Fancybox 内部只关闭 Fancybox 一次

node.js - 如何使用 socket.io 更新 Yii2 ListView 中的单独项目