在生产模式下获取Ember Application的堆栈跟踪

时间:2013-03-20 16:50:43

标签: javascript debugging ember.js try-catch ember-data

我正在尝试在生产服务器中调试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;
};

那么我可以使用上面的函数包装所有函数,以便在不影响任何内容的情况下获取应用程序中发生的所有错误的信息?

更新

添加了JS Fiddle

1 个答案:

答案 0 :(得分:0)

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

Cfr this answer