我听很多人说在 Node 中抛出错误是不好的做法,你应该通过 CommonJS 的回调语法手动处理它们:
somethingThatPassesAnError( function(err, value) {
if (err) console.log("ERROR: " + err);
});
然而,我在多个单元测试框架(Mocha、Should.js、Gently)中发现,它们似乎希望你throw
在发生某些事情时出错。我的意思是,当然,您可以设计测试来检查变量的相等性并检查错误变量中的非空值,但用 Ryan Dahl 自己的话来说,“您应该编写框架以使正确的事情易于执行并且错事难做”。
那么给了什么?谁能解释为什么存在这种做法?require()
如果找不到模块,我应该开始抛出致命异常吗?