在NodeJS中使用Error对象时,EventEmitters可以发出标准的'error'事件,如果没有处理它会自动变成Thrown错误。但是如何改变错误严重程度(即“信息”或“通知”错误与“警告”或“严重”)。据我所知,默认的Error对象上没有type
属性。是否存在传递/处理各种严重性错误的现有标准方法?我正在考虑为我的模块实现我自己的标准,这样听众就像:
myThing.on('error', function(err) {
if (err.severity & (ERR_WARNING | ERR_CRITICAl)) {
console.log("Critical Failure!", err);
proces.exit(0);
}
});
这意味着他们可以设置自己的调试级别并忽略不符合该阈值的错误。这样的事情是否已作为标准存在?
答案 0 :(得分:2)
您可以做的最好的事情是为非严重错误使用另一个事件名称(例如warning
左右)。您也可以像这样实现自己的Error
“子类”:
var inherits = require('util').inherits;
function MyError (message, severity) {
this.name = 'MyError';
this.severity = severity;
this.message = message;
Error.captureStackTrace(this, MyError);
}
inherits(MyError, Error);
答案 1 :(得分:1)
是否存在传递/处理各种严重性错误的现有标准方法?
是的,做一个console.error("something is wrong")
。这样你的应用程序将继续正常运行,但会向stderr输出警告,确保人们最终会对其进行调查。