Javascript 在余烬应用程序上设置空气制动
如何设置Airbrake,使其从Ember应用程序中发生的未处理Javascript错误中获取上下文信息 假设您已经包含了,您可以钩住Ember的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
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为您提供了更好的错误报告