文章不易,请关注公众号 毛毛虫的小小蜡笔,多多反对,谢谢
问题
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,也不能捕捉异步函数。
详情 请查看:毛毛虫的小小蜡笔