如何处理 ExtJs 上的错误
How to Handle errors on ExtJs
我希望能够捕获屏幕上抛出的任何错误。到目前为止我的代码是这样的:
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.properties 的事情,错误处理不会捕获它。
我知道像 "Ext.isDefined()" 这样的函数,但对于这种情况,我确实需要以相同的方式处理所有一般性错误。
Ext.Error.handle
仅根据 documentation.
处理 Ext.raise
引发的错误
处理普通 javascript 错误的解决方案是浏览器 window.
上的 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
},
我希望能够捕获屏幕上抛出的任何错误。到目前为止我的代码是这样的:
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.properties 的事情,错误处理不会捕获它。
我知道像 "Ext.isDefined()" 这样的函数,但对于这种情况,我确实需要以相同的方式处理所有一般性错误。
Ext.Error.handle
仅根据 documentation.
Ext.raise
引发的错误
处理普通 javascript 错误的解决方案是浏览器 window.
上的 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
},