如何确保将所有JavaScript错误都写入Chrome开发者工具控制台?

时间:2012-02-16 20:42:20

标签: javascript google-chrome-devtools

考虑以下JavaScript函数:

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

直接运行triggerError();时,以下错误会以红色写入Chrome开发者工具控制台,这是预期的:

TypeError: Cannot call method 'doesNotExist' of undefined

然而,当从事件监听器运行triggerError();时,没有错误被写入控制台(函数调用只是在something.doesNotExist();静默死亡)这使得在打字错误时调试非常棘手等等。

如何确保所有错误都写入Chrome开发者工具控制台,包括从事件监听器/回调中运行的代码中生成的错误?

一个显而易见的解决方法是在所有地方添加try { ... } catch (x) { console.log(x) };,但由于我事先不知道我将在哪里添加拼写错误,这不是前进的方法。

2 个答案:

答案 0 :(得分:1)

您可以使用try catch

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

答案 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>