2013-07-26 101 views
3

是否有办法在全局范围内处理ExtJS应用程序中的所有JavaScript错误和异常,并将其路由到一个函数,以警告用户服务器错误?ExtJS中的全局错误处理

window:onerror()似乎并没有处理所有的JavaScript错误,因此在代码中寻找某种类型的catch,将它包装到一个更通用的异常中以便捕获它?

回答

3

参见

http://docs.sencha.com/extjs/4.2.1/#!/api/Ext.Error-static-method-handle

全局处理可能提出的任何分机错误,任选 提供定制逻辑来单独地处理不同的错误。返回 如果从函数返回true,则将错误抛出到浏览器,否则将抛出错误并执行将停止。

用法示例:

Ext.Error.handle = function(err) { 
    if (err.someProperty == 'NotReallyAnError') { 
     // maybe log something to the application here if applicable 
     return true; 
    } 
    // any non-true return value (including none) will cause the error to be thrown 
} 

正常情况下,错误会被得到的onerror处理,但在Ext.Error.handle返回true阻止了。

也期待在http://docs.sencha.com/extjs/4.2.1/#!/api/Ext.Ajax-event-requestexception

+0

谢谢,我应该把它写在应用程序启动文件?我不应该使用Ext.Create()来调用这段代码吗?或者在抛出异常时自动调用 –

+1

是的,你应该把它放在app.init中。你不需要Ext.create,因为它是一个静态方法。当提出分机时,它会被调用。您可能仍然想要防止出现异常情况。 –

+0

谢谢,但我的应用程序没有app.init文件。我应该将它添加到'Ext.application()'JS文件中的'launch:function()'方法吗? –