2013-03-20 40 views
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

新增JS Fiddle

回答

0

为什么不使用Ember.onerror事件?

CFR this answer

+0

我添加了一个jsfidle,使用onerror亘古不适合所有的情况下工作。其中一种情况可以在小提琴中重现。 – 2013-03-21 22:10:39