如何在Chrome控制台中调试此报告的错误?

时间:2012-06-02 04:42:51

标签: javascript debugging google-chrome console

Chrome控制台报告错误。

它列出了一个函数的名称 - 可能是发生错误的函数。

它没有破裂。它没有告诉我任何进一步的细节。我不能让它在"暂停例外"按钮。

对于如何处理此错误,我是否缺少一些步骤? Chrome打算让我做什么?这是一个经常被调用的函数,因此在特定用例中缩小它是一个变化无常的问题。

"它实际上并没有提供任何帮助。是一个完全可以接受的答案当我继续与这个神秘的控制台输出战斗时,我只是想确认或反驳。

This is the expanded "<error>" message. ResolveRests is my function.

2 个答案:

答案 0 :(得分:2)

尝试打破异常。您可以通过单击stop sign with pause icon按钮来执行此操作。

它在三种颜色之间切换:黑色,蓝色和紫色。

当它是黑色时,它不会在例外情况下中断 当它是蓝色时,它会破坏所有例外情况 当它是紫色的时候,就会破坏未被捕获的例外。

答案 1 :(得分:1)

虽然在大多数情况下答案是打破异常,正如我在my previous answer中所示,但这似乎不是这样。

问题可能是由于某些代码导致生成堆栈跟踪失败。这是the relevant code in V8的一部分:

function FormatStackTrace(error, frames) {
  var lines = [];
  try {
    lines.push(error.toString());
  } catch (e) {
    try {
      lines.push("<error: " + e + ">");
    } catch (ee) {
      lines.push("<error>");
    }
  }
  for (var i = 0; i < frames.length; i++) {
    var frame = frames[i];
    var line;
    try {
      line = frame.toString();
    } catch (e) {
      try {
        line = "<error: " + e + ">";
      } catch (ee) {
        // Any code that reaches this point is seriously nasty!
        line = "<error>";
      }
    }
    lines.push("    at " + line);
  }
  return lines.join("\n");
}

正如您所看到的,如果未能获取未捕获的异常或堆栈帧的字符串表示,然后当它尝试获取的字符串表示时,您将获得<error> ,它失败了。例如,如果您运行此代码:

function NastyException() {}
NastyException.prototype.toString = function() { throw this; };
throw new NastyException();

然后你会得到这个无益的错误:

Uncaught #<error>

不可否认,这并不是你收到的错误,但它并不是那么遥远。