使用process.on('uncaughtException', ()=>{})捕获异常的问题
来源:4-4 全局异常处理中间件编写

Viavia
2019-05-11
上次看了老师你的tp5课程用node跟着写了个异常处理类,用的是 uncaughtException 、unhandledRejection这两个事件可以捕获所有异常,但是node官方文档推荐做一些清理操作后退出进程, 这个该怎么理解呢?
export default class Exception {
constructor() {
process.on('unhandledRejection', this.handler)
process.on('uncaughtException', this.handler)
}
handler(err) {
let ctx = err.ctx
// 如果是自定义错误
if(err instanceof CustomException) {
ctx.status = err.status
ctx.body = {
message: err.message,
error: err.error
}
} else {
// 记录日志 退出进程
process.exit(1)
}
}
}
写回答
1回答
-
意思就是说,建议出现这种未定义的异常,应该重启或者切换到另外的应用上。这个可以用Pm2启动多个进程,但是,咱们课程里的方法,理论上是可以保证不会出现未捕获的异常这种情况。
012019-05-11
相似问题