在 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 时它似乎忽略了异常,只是回退到产生当前帧的堆栈跟踪。
编辑:
从下面的屏幕截图中可以看出,异常没有与堆栈相关的属性: