问题
koa是怎么处理异常的?
分析
首先了解下node.js是怎么处理异常的
一般来说,node.js顶层有个uncaughtException事件,当异常没被捕获的时候,就会一层层上升,直到触发定义好的uncaughtException事件。
但有个问题,node.js最大的特点是异步机制。比如读取文件信息的stat的异步写法:
require('fs').stat('test.txt', function(err, res) { if (err) { throw err; } })
如果读取文件信息过程中出错了,比如文件不存在。那就会执行throw err。
就算用了try catch,也不能捕获异步函数。
详情 请查看:毛毛虫的小小蜡笔