NodeJS错误处理最佳实践.pdfVIP

  1. 1、本文档被系统程序自动判定探测到侵权嫌疑,本站暂时做下架处理。
  2. 2、如果您确认为侵权,可联系本站左侧在线QQ客服请求删除。我们会保证在24小时内做出处理,应急电话:400-050-0827。
  3. 3、此文档由网友上传,因疑似侵权的原因,本站不提供该文档下载,只提供部分内容试读。如果您是出版社/作者,看到后可认领文档,您也可以联系本站进行批量认领。
查看更多
目 录 简介 背景 操作失败和程序员的失误 编写函数的实践 编写新函数的具体建议 例子 总结 附录 :Error 对象属性命名约定 本文档使用 看云 构建 - 2 - 简介 简介 NodeJS的错误处理让人痛苦 ,在很长的一段时间里 ,大量的错误被放任不管。但是要想建立一个健壮 的Node.js程序就必须正确的处理这些错误 ,而且这并不难学。如果你实在没有耐心 ,那就直接绕过长 篇大论跳到 “总结”部分吧。 原文 这篇文章会回答NodeJS初学者的若干问题 : 我写的函数里什么时候该抛出异常 ,什么时候该传给callback, 什么时候触发 EventEmitter 等等。 我的函数对参数该做出怎样的假设 ?我应该检查更加具体的约束么 ?例如参数是否非空 ,是否大于 零 ,是不是看起来像个IP地址 ,等等等。 我该如何处理那些不符合预期的参数 ?我是应该抛出一个异常 ,还是把错误传递给一个callback。 我该怎么在程序里区分不同的异常 (比如 “请求错误”和 “服务不可用” )? 我怎么才能提供足够的信息让调用者知晓错误细节。 我该怎么处理未预料的出错 ?我是应该用 try/catch ,domains 还是其它什么方式呢 ? 这篇文章可以划分成互相为基础的几个部分 : 背景 :希望你所具备的知识。 操作失败和程序员的失误 :介绍两种基本的异常。 编写新函数的实践 :关于怎么让函数产生有用报错的基本原则。 编写新函数的具体推荐 :编写能产生有用报错的、健壮的函数需要的一个检查列表 例子 :以 connect 函数为例的文档和序言。 总结 :全文至此的观点总结。 附录 :Error对象属性约定 :用标准方式提供一个属性列表 ,以提供更多信息。 本文档使用 看云 构建 - 3 - 背景 背景 本文假设 : 你已经熟悉了JavaScript、Java、 Python、 C++ 或者类似的语言中异常的概念 ,而且你知道抛出异 常和捕获异常是什么意思。 你熟悉怎么用NodeJS编写代码。你使用异步操作的时候会很自在 ,并能用 callback(err,result) 模式去完成异步操作。你得知道下面的代码不能正确处理异常的原因是 什么[脚注1] function myApiFunc(callback) { /* * This pattern does NOT work! */ try { doSomeAsynchronousOperation(function (err) { if (err) throw (err); /* continue as normal */ }); } catch (ex) { callback(ex); } } 你还要熟悉三种传递错误的方式 - 作为异常抛出。 - 把错误传给一个callback ,这个函数正是为了处理异 常和处理异步操作返回结果的。 - 在EventEmitter上触发一个Error事件。 接下来我们会详细讨论这几种方式。这篇文章不假设你知道任何关于domains的知识。 最后 ,你应该知道在JavaScript里 ,错误和异常是有区别的。错误是Error的一个实例。错误被创建并且直 接传递给另一个函数或者被抛出。如果一个错误被抛出了那么它就变成了一个异常[脚注2]。举个例子 : throw new Error(something bad happened); 但是使用一个错误而不抛出也是可以的 callback(new Error(something bad happened)); 这种用法更常见 ,因为在NodeJS里 ,大部分的错误都是异步的。实际上 ,try/catch 唯一常用的是在 本文档使用 看云 构建

文档评论(0)

max + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档