考慮下面的JavaScript函數:如何確保將所有JavaScript錯誤寫入Chrome開發人員工具控制檯?
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) };
添加到整個地方,但由於我不知道我會在哪裏添加拼寫錯誤,所以這不是一個前進的方向。
這聽起來就像Chrome中的一個bug一樣。您應該在http://new.crbug.com報告它 – abraham 2012-02-16 20:55:09
嗯,我*做*在Chrome中獲取錯誤消息 - **現場演示:** http://jsfiddle.net/zzcYH/1/ – 2012-02-16 21:06:08