NodeJS错误处理 - 使用错误代码或子类化

时间:2015-10-19 14:08:46

标签: javascript node.js error-handling exception-handling

使用自定义错误代码与在NodeJS中使用Error的自定义子类相比,有什么过程和缺点?

在像Java或Python这样的语言中,我会使用子类,因为我可以在不同的catch块中处理它。但是,在JavaScript中为每个精确错误情况编写Error的特定子类对我来说看起来是多余的,因为catch块可以在不使用instanceof运算符的情况下使用它。顺便说一下,throw也不是在NodeJS中传递错误的常用方法(我的意思是错误优先回调样式)。因此,最终,我决定坚持使用一个自定义类(继承自Error)来处理所有项目的错误。但是,现在我应该介绍很多不同的错误代码。我想知道 - 在NodeJS中处理错误是一种常规流程吗?

1 个答案:

答案 0 :(得分:0)

为错误消息创建Error对象允许您指定可能与错误本身相关的其他内容。请考虑以下事项:

var e = new Error("An error message");
e.status = "TERMINATED";
e.exit_code = 127:

Error对象只是另一个javascript对象,因此向其添加属性是有效的。此外,您还可以使用一些有用的东西来跟踪错误消息,例如“e.stack”,以查看创建错误对象时堆栈的外观。有关Error对象的其他属性,请参阅this website

为什么不创建一个错误工厂“类”,用于创建需要添加“错误代码”的错误对象?您可以随时检查您捕获的错误是否是由工厂创建的,如果它具有您对该对象进行扩充的任何属性。