本系列文章是本人学习相关知识时所积累的笔记,以记录自己的学习历程,也为了方便回顾知识;故文章内容较为随意简练,抱着学习目的来的同学务必转移他处,以免我误人子弟~
参考资料
简书:console.log输出打印日志所在代码行数
大搜车NodeJS日志规范化与分析监控
Node.js下自定义错误类型
Node.js 异步异常的处理与domain模块解析
sf: nodejs Error 疑问?
sf: [译] NodeJS 错误处理最佳实践
nodejs中错误捕获的一些最佳实践
在API程序设计开发中错误码如何规划设计?
为什么需要错误处理机制
- 原生的错误提醒比较难看,通过特殊处理可以美化错误提示,提升用户体验
- 隔离常规代码和错误处理代码
- 快速定位错误
错误码设置
统一格式:A-BB-CCC
A:错误级别,如1代表系统级错误,2代表服务级错误;
B:项目或模块名称,一般公司不会超过99个项目;
C:具体错误编号,自增即可,一个项目999种错误应该够用;
微博开放平台:错误代码说明
需要处理的错误
分为 操作错误 和 程序错误,需要处理处理的是操作错误,程序错误需立即修复
- 操作错误:不是程序 bug 导致的运行时错误。比如:连接数据库服务器失败、请求接口超时、系统内存用光等等。
- 程序错误:程序 bug 导致的错误,只要修改代码就可以避免。比如:尝试读取未定义对象的属性、语法错误等等。
三种错误处理方法
throw、callbacks、EventEmitter
- nodejs 无法使用
try...catch
捕捉异步函数的错误 - express 框架会帮我们使用
try...catch
捕捉抛出的错误,但是同样无法捕捉异步错误
koa中使用中间件来统一处理错误
- 使用中间件统一处理