我希望能够捕获屏幕上抛出的任何错误。到目前为止,我的代码是这样的:
Ext.application({
errorHandler:function(err){
alert(err.msg);
return true;
},
requires: [
'Ext.ux.ajax.JsonSimlet',
'Ext.ux.ajax.SimManager'
],
views: [
'Admin.view.something',
'Admin.view.somethingController'
],
name: 'Admin',
launch : function() {Ext.create('Admin.view.something');
Ext.Error.notify = false;
Ext.Error.handle = this.errorHandler;
}
});
问题是,我有一些可能 undefined object 。如果我执行类似 undefined.properties 的操作,错误处理不会捕获它。
我知道像“Ext.isDefined()”这样的函数,但对于这种情况,我确实需要以相同的方式处理所有一般错误。
最佳答案
Ext.Error.handle
仅根据 documentation 处理由 Ext.raise
引发的错误.
处理普通 javascript 错误的解决方案是浏览器窗口中的 error
事件。
您可以使用 window.addEventListener('error', function(event) { ... })
将处理程序附加到它。
以下代码应该捕获项目中的所有错误。
launch : function() {
Ext.Error.notify = false;
Ext.Error.handle = this.errorHandler;
window.addEventListener('error', this.errorJsHandler);
Ext.create('Admin.view.something');
},
errorJsHandler: function(err) { // err = ErrorEvent Object https://developer.mozilla.org/en-US/docs/Web/API/ErrorEvent
alert(err.message);
return true; // prevent the firing of the default event handler
},
关于javascript - 如何处理 ExtJs 上的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52475778/