Javascript 在余烬应用程序上设置空气制动

Javascript 在余烬应用程序上设置空气制动,javascript,ember.js,airbrake,Javascript,Ember.js,Airbrake,如何设置Airbrake,使其从Ember应用程序中发生的未处理Javascript错误中获取上下文信息 假设您已经包含了,您可以钩住Ember的onerror处理程序并推送错误 Ember.onerror = function(err) { // any ember error Airbrake.push(err); //any other error handling }; Ember.RSVP.configure('onerror',function(err){ // an

如何设置Airbrake,使其从Ember应用程序中发生的未处理Javascript错误中获取上下文信息

假设您已经包含了,您可以钩住Ember的
onerror
处理程序并推送错误

Ember.onerror = function(err) { // any ember error
    Airbrake.push(err);
    //any other error handling
};
Ember.RSVP.configure('onerror',function(err){ // any promise error
    Airbrake.push(err);
    console.error(e.message);
    console.error(e.stack);
    //any other generic promise error handling
};
window.onerror = function(err){ // window general errors.
    Airbrake.push(err);
    //generic error handling that might not be Airbrake related.
};

您可以在airbrake js GitHub存储库文档中看到发送数据的不同参数的更多选项。

我不知道这是否回答了您的问题,但我希望它能有所帮助

要处理服务器抛出的错误,您可以在应用程序的路由中定义“错误”函数,并将其推入Airbrake:

App.ApplicationRoute = Ember.Route.extend({
  actions: {
    error: function(error) {
      // handle the error
      Airbreak.push(error)
    }
  }
});
此外,如果您在其他地方捕获错误并具有相同的处理,则可以进行混入并传递错误:

App.ErrorHandlerMixin = Ember.Mixin.create({
    handleError: function(error){
         //make different stuff
         Airbreak.push(error)
    }      
});

App.ApplicationRoute = Ember.Route.extend(App.ErrorHandlerMixin, {
  actions: {
    error: function(error, transition) {
      this.handleError(error);
    }
  }
});

App.ApplicationController = Ember.ObjectController.extend((App.ErrorHandlerMixin, {
    someFunction: function () {
        this.handleError(randomError);
    }
});

通过这种方式,您可以在一个地方处理所有错误。

我现在已经与一名Ember团队成员(Stef)进行了验证-目前无法捕获RSVP错误和正常错误。祝你好运谢谢是的,我正在使用rails airbrake_javascript_notifier helper进行初始化,并使用Ember.onerror,但我基本上在我缩小的JS中的某个地方出现了类似“ReferenceError:找不到变量e”的错误,没有其他信息。我想看看我是不是遗漏了什么。很高兴了解RSVP onerror。你是如何设置airbrake的?我甚至无法“获取”添加后的javascript文件,我使用的是Rails,并使用了Rails助手,它们在这里显示-但是,通过直接添加显示的JS,您应该能够获得相同的结果。对于airbrake,我无法使用上述示例方式,但我必须从github手动下载JS文件,并将其包含在我的项目中以使其正常工作。尽管我认为sentry为您提供了更好的错误报告