javascript - 如何处理 ExtJs 上的错误

标签 javascript extjs error-handling extjs6

我希望能够捕获屏幕上抛出的任何错误。到目前为止,我的代码是这样的:

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/

相关文章:

javascript - ExtJS 4 存储中少数实例中的唯一记录

c - Tizen nativ 可穿戴开发错误找不到二进制文件(/Users/yvonne/CeBIT/CeBIT/Debug/cebit)

javascript - 引用错误: Can't find variable: goToByScroll using CoffeScript

javascript - 使用jquery在ul中添加li元素

javascript - ExtJS 6 标记字段中的错误

javascript - 如何禁用 WebBrowser 控件中的 JavaScript 警告?

scala - 了解 play/scala 错误处理

javascript - Pusher 一对一聊天结构

javascript - 当部分可见时将标题固定在顶部

extjs - 如何创建最初隐藏在 ExtJS 中的按钮?