javascript – Node.js错误抛出被称为坏习惯,但对TDD至关重要
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – Node.js错误抛出被称为坏习惯,但对TDD至关重要,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1222字,纯文字阅读大概需要2分钟。
内容图文
![javascript – Node.js错误抛出被称为坏习惯,但对TDD至关重要](/upload/InfoBanner/zyjiaocheng/732/f88da6c791fc4c77ae164f8ac336b7fd.jpg)
我听到很多人说在Node中抛出错误是不好的做法,你应该通过CommonJS的回调语法手动处理它们:
somethingThatPassesAnError( function(err, value) {
if (err) console.log("ERROR: " + err);
});
然而,我发现在多个单元测试框架(Mocha,Should.js,Gently)中,似乎他们希望您在发生某些事情时抛出错误.我的意思是,当然,你可以设计你的测试来检查变量是否相等,并检查错误变量中的非空,但用Ryan Dahl自己的话来说,“你应该编写你的框架以使正确的事情变得容易,并且错误的事情很难做到“.
什么给出了什么?谁能解释为什么这种做法存在?如果无法找到模块,我应该开始抛出像require()那样的致命异常吗?
解决方法:
这是因为nodejs程序通常会大量使用异步,因此在try / catch成功完成后通常会抛出错误.考虑这个人为的例子.
function foo(callback) {
process.nextTick(function() {
if (something) throw "error";
callback("data");
});
}
try {
foo(function(data) {
dosomething(data);
});
} catch (e) {
// "error" will not be caught here, as this code will have been executed
// before the callback returns.
}
回调中第一个参数的典型节点模式是一个错误,它避免了这个问题,提供了一种从异步代码返回错误的一致方法.
function foo(callback) {
process.nextTick(function() {
if (something) return callback("error");
callback("data");
});
}
foo(function(error, data) {
if (error) return handleError(error);
dosomething(data);
});
内容总结
以上是互联网集市为您收集整理的javascript – Node.js错误抛出被称为坏习惯,但对TDD至关重要全部内容,希望文章能够帮你解决javascript – Node.js错误抛出被称为坏习惯,但对TDD至关重要所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。