2012-02-16 4 views
1

は、以下のJavaScript関数を考えてみましょう。直接triggerError();を実行している場合すべてのJavaScriptエラーがChromeデベロッパーツールコンソールに書き込まれるようにするにはどうすればよいですか?

function triggerError() { 
    var something = undefined; 
    // The next line will trigger 'TypeError: Cannot call ... of undefined' 
    something.doesNotExist(); 
} 

次のエラーが予想され、赤でクロム開発者ツールコンソールに書き込まれます。

TypeError: Cannot call method 'doesNotExist' of undefined 

しかし、triggerError();がされているときイベントリスナーから実行するとエラーはコンソールに書き込まれません(関数呼び出しは暗黙的にsomething.doesNotExist();で終了します)。これは、タイプミスなどの場合にデバッグするのが非常に面倒です。

イベントリスナー/コールバックから実行されているコードで生成されたエラーを含め、すべてのエラーがChromeデベロッパーツールコンソールに書き込まれていることを確認するにはどうすればよいですか?

明白な回避策は、場所全体にtry { ... } catch (x) { console.log(x) };を追加することですが、私は誤植を追加する場所を事前に知っていないので、これは方法ではありません。あなたはtry catch使用することができ

+0

ですねChromeのバグのように。 http://new.crbug.comで報告する必要があります – abraham

+0

Chromeでエラーメッセージが表示されます** **ライブデモ:** http://jsfiddle.net/zzcYH/1/ –

答えて

1

を、あなたのサンプルを示すことができ、私は次のスニペットでそれを再現してみました、それが私のために完全に正常に動作します:

<script> 
function triggerError() { 
    var something = undefined; 
    // The next line will trigger 'TypeError: Cannot call ... of undefined' 
    something.doesNotExist(); 
} 
window.addEventListener("click", triggerError, true); 
</script> 
<body onclick="triggerError()"> 
</body> 
+0

あなたは絶対に正しい - 私のテストケースは間違っていた。ごめんなさい! :-) – knorv

1

function triggerError() { 
    try{ 
     var something = undefined; 
     // The next line will trigger 'TypeError: Cannot call ... of undefined' 
     something.doesNotExist(); 
    }catch(ex){ 
     console.error(ex.message); 
    } 
} 
+0

ありがとうございます、私はどこに私のタイプミスを追加するのか分からないので、残念ながら多くの助けにはならないでしょう。私は今、コードの変更を伴わない修正を探していることを明らかにしました。 – knorv

関連する問題