如何在IE 8中获取JavaScript异常的堆栈跟踪?

时间:2013-04-04 11:55:37

标签: javascript debugging exception internet-explorer-8 stack-trace

当在IE 8中抛出JavaScript异常时,如何查看其堆栈跟踪?

例如,jQuery中的以下代码捕获异常并重新抛出它。在Visual Studio(2012)中进行调试,执行在jQuery捕获异常('e')时中断,但我不能在生命中看到异常源自的堆栈跟踪:

// resolve with given context and args
resolveWith: function( context, args ) {
    if ( !cancelled && !fired && !firing ) {
        firing = 1;
        try {
            while( callbacks[ 0 ] ) {
                callbacks.shift().apply( context, args );
            }
        }
        // We have to add a catch block for
        // IE prior to 8 or else the finally
        // block will never get executed
        catch (e) {
            throw e;
        }
        finally {
            fired = [ context, args ];
            firing = 0;
        }
    }
    return this;
}

我已经尝试了stacktrace.js库,但是当浏览器是IE 8时它似乎忽略了异常,只是回到生成当前帧的堆栈跟踪。

修改

从下面的屏幕截图中可以看出,异常没有与堆栈相关的属性:

JavaScript exception object

1 个答案:

答案 0 :(得分:2)

看一下这个链接: DIY javascript stack trace

他的例子正在研究我的IE8。