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

Javascript 如何在Extjs中捕获脚本错误?,javascript,extjs4.1,Javascript,Extjs4.1,我有一个应用程序有一个选项卡面板,我们可以在其中编写Extjs代码,通过点击按钮,代码的o/p应该显示在预览中。为此,我有一个iFrame,并且正在通过document.write(content)方法更新iFrame,其中content是一个包含Extjs代码的变量 我的要求是,如果在运行js代码时出现任何错误,系统将捕获该错误并显示在预览区域(iframe) 有人知道如何在点击按钮时捕捉错误吗 我已经阅读了w3school的try/catch/finally教程,但它没有帮助,因为我还需要捕

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

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

有人知道如何在点击按钮时捕捉错误吗

我已经阅读了w3school的try/catch/finally教程,但它没有帮助,因为我还需要捕捉控制台错误

谢谢
塔帕斯维尼

我找到了解决办法。当然,我们不能在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 ;
 } 
window.onerror=函数(消息、url、行号){
var errorbox=document.createElement('div');
errorbox.innerHTML=''+message+'
在行号:'+linenumber+''; document.body.appendChild(errorbox); 返回; }
var varMessage=Ext.MessageBox.show({
消息:“正在启动,请稍候…”,
//标题:“请稍候”,
progressText:“正在保存…”,
animateTarget:'btn1',
进步:没错,
可关闭:错误,
宽度:50,
等等:是的,
waitConfig:{
间隔时间:400,,
期限:2000年,
//增量:2,
文本:“启动…”,
范围:本,,
fn:函数(){
//ajax请求的代码
Ext.Ajax.request({
url:'url',
async:false,
//成功完成url时的代码
成功:功能(响应、选项){
var obj=(response.responseText);
Ext.MessageBox.hide();
//错误处理代码
试一试{
Ext.Msg.alert('状态','请求成功完成');
}捕捉(错误){
Ext.Msg.alert('错误','执行过程中发生了一些错误。

'+err); }最后{} //错误处理代码 }, //执行期间是否发生任何错误的代码 故障:功能(响应、选项){ Ext.MessageBox.hide(); Ext.Msg.alert(“错误”,“在服务器上执行时发生了一些问题!”); } }); } } });
您可以发布您的代码吗?这有助于回答问题。
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 !");
                }
            });
        }
    }
});