繁体   English   中英

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

[英]NodeJS error handling - using error codes or subclassing

在NodeJS中使用自定义错误代码与使用Error自定义子类有什么好处和缺点?

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

为错误消息创建一个Error对象,使您可以指定可能与错误本身有关的其他内容。 考虑以下:

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

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

为什么不创建一个错误工厂“类”来创建带有所需“错误代码”的Error对象? 您始终可以检查捕获的错误是否由工厂创建,如果它具有扩展对象所具有的任何属性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM