0

Chrome のコンソールがエラーを報告します。

関数の名前がリストされています-おそらく、エラーが発生している関数です。

壊れません。それ以上の詳細は教えてくれません。「例外で一時停止」ボタンで中断することはできません。

このエラーをどうするかについて、私が見逃しているステップはありますか? Chrome は私に何をしようとしているのでしょうか? これは頻繁に呼び出される関数であるため、特定のユース ケースに絞り込むのは難しい問題です。

「実際にはそれ以上は役に立たない」というのは、完全に受け入れられる答えです。この不可解なコンソール出力との戦いを続けているので、それを確認または反論したかっただけです.

これが拡張された

4

2 に答える 2

2

例外を壊してみてください。ボタンをクリックすると、これを行うことができ一時停止アイコン付きの一時停止の標識ます。

黒、青、紫の 3 色を切り替えます。

黒の場合、例外で中断していません。
青色の場合、すべての例外で中断しています。
紫色の場合は、キャッチされていない例外で中断しています。

于 2012-06-02T05:54:06.880 に答える
1

ほとんどの場合、答えは例外を破ることですが、前の答えで示したように、ここではそうではないようです。

この問題は、スタックトレースの生成が失敗する原因となるコードが原因である可能性があります。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>

確かに、それはあなたが受け取っていたエラーではありませんが、それほど遠くはありません。

于 2012-06-11T20:36:12.253 に答える