如何在Extjs中捕获脚本错误?

时间:2013-03-29 14:25:02

标签: javascript extjs4.1

我有一个应用程序有一个选项卡面板,我们可以在其中编写Extjs代码,并且通过按下按钮,代码的o / p应显示在预览中。为此,我有一个iFrame,并通过document.write(content)方法更新iframe,其中content是包含Extjs代码的变量。

我的要求是如果在运行js代码时出现任何错误,系统将捕获该错误并显示在预览区域(iframe)中。

任何人都知道如何在按钮点击时捕获错误吗?

我已经完成了w3school try / catch / finally教程,但它没有帮助,因为我还需要捕获控制台错误。

由于 Tapaswini

2 个答案:

答案 0 :(得分:0)

我得到了解决方案。当然,我们无法在Extjs中实现这一点。我们可以在简单的Javascript window.onerror事件中实现这一点。

示例代码:

window.onerror = function(message, url, linenumber) {
        var errorbox = document.createElement('div'); 
        errorbox.innerHTML = '<font color = red >'+message+'<br> At line number  :  '+linenumber+'</font>'; 
        document.body.appendChild(errorbox); 
        return ;
 } 

答案 1 :(得分:0)

var varMessage = Ext.MessageBox.show({
    msg: 'Initiating, please wait...',
    //title: 'Please wait',
    progressText: 'Saving...',
    animateTarget: 'btn1',
    progress: true,
    closable: false,
    width: 50,
    wait: true,
    waitConfig: {
        interval: 400,
        duration: 2000,
        //increment: 2,
        text: 'Initiating...',
        scope: this,
        fn: function() {
            //Code for ajax request
            Ext.Ajax.request({
                url: 'url',
                async: false,
                //Code for if url successfully done
                success: function(response, opts) {
                    var obj = (response.responseText);
                    Ext.MessageBox.hide();
                    //Code for error handling
                    try {
                        Ext.Msg.alert('Status', 'Request successfully done .');
                    } catch(err) {
                        Ext.Msg.alert('Error', 'Some error occured during execution.<br/></br>' + err);
                    } finally {}
                    //Code for error handling
                    },
                //Code for if any error occured during execution
                failure: function(response, opts) {
                    Ext.MessageBox.hide();
                    Ext.Msg.alert("Error", "Some issue occured during execution on server !");
                }
            });
        }
    }
});