21

在 IE 8 中引发 JavaScript 异常时,我如何查看其堆栈跟踪?

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

// 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 异常对象

4

0 回答 0