3
我試圖在生產服務器中調試emberjs和ember-data應用程序。我正在監聽window.onerror,所以當某些事情中斷時,我得到了回調,在那裏我可以出現錯誤信息,行號和文件。但是window.onerror在不同的瀏覽器中行爲不一樣。它也不提供堆棧跟蹤在生產模式下獲取堆棧跟蹤Ember應用程序
所以我使用下面的函數來包裝的燼邊界函數,所以我可以得到完整的堆棧跟蹤。
function tryCatchWrapper (func, name) {
// Else wrap the function and return it
function wrapped() {
try {
return func.apply(this, arguments);
} catch (e) {
// Report the errors
console.log((name ? name + ": " : "") + e.message);
// Get stacktrace
throw e;
}
}
return wrapped;
};
那麼所有的功能我可以包裝使用上述功能,以獲取有關所有的錯誤在不影響任何應用程序發生信息?
UPDATE
我添加了一個jsfidle,使用onerror亙古不適合所有的情況下工作。其中一種情況可以在小提琴中重現。 – 2013-03-21 22:10:39