在全球范围内处理错误

时间:2015-09-09 13:54:25

标签: node.js sails.js

我正在尝试了解如何为我的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系统?

1 个答案:

答案 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,并将错误记录到致命级别。通过这种方式,我的服务器仍然可以全天候访问,我可以监控另一个级别的日志,并在致命错误时触发警报。然后我可以修复抛出的异常。