我正在尝试了解如何为我的api构建我的错误处理系统。
假设我在控制器方法中有以下行:
var age = json.info.age;
带
json = {"id":1, "name":"John", info": {"age":27, "sex":"m"}}
假设该对象不包含info
字段,我将收到以下错误TypeError: Cannot read property 'info' of undefined
,我的服务器将崩溃。
有没有办法进行更高级别的抽象并捕获我可能遇到的所有潜在错误?或者我应该为我的控制器的每个方法都有一个try / catch系统?
答案 0 :(得分:0)
这就是我的表现,感谢Zagen的回答。
module.exports.bootstrap = function(cb) {
process.on('uncaughtException', function (err) {
//Handle your errors here
logger.fatal(err);
global.__current__.res.serverError();
})
cb();
};
如果抛出任何未捕获的异常,我会向用户发送一般错误500,并将错误记录到致命级别。通过这种方式,我的服务器仍然可以全天候访问,我可以监控另一个级别的日志,并在致命错误时触发警报。然后我可以修复抛出的异常。