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

lkaoscv7  于 2023-01-05  发布在  Java
关注(0)|答案(1)|浏览(225)

当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库,但当浏览器是IE8时,它似乎忽略了异常,只是退回到生成当前帧的堆栈跟踪。

    • 编辑:**

正如您在下面的屏幕截图中所看到的,该异常没有与堆栈相关的属性:

guz6ccqo

guz6ccqo1#

这不管用吗!!

function getStackTrace(e) {
  var stack = [];
  while (e) {
    stack.push({
      fileName: e.fileName,
      lineNumber: e.lineNumber,
      name: e.name,
      message: e.message,
      stack: e.stack
    });
  }
  return stack;
}

相关问题