从错误事件中获取堆栈跟踪

时间:2014-08-04 09:54:50

标签: javascript exception exception-handling

我正在实现一个全局异常处理程序,它应该记录异常并将信息发送到服务器。现在我的代码看起来像

window.addEventListener('error', function (errorEvent) {
  var errorLine = '';
  if (errorEvent.filename) {
    var lastSlashIndex = errorEvent.filename.lastIndexOf('/');
    errorLine += errorEvent.filename.substr(lastSlashIndex + 1);
  }
  if (errorEvent.lineno) errorLine += ':' + errorEvent.lineno;
  if (errorEvent.message) errorLine += ' ' + errorEvent.message;

因此,我可以提取抛出异常的位置,但不能提取完整的堆栈跟踪。我调查了传递给事件监听器回调的错误事件,但是我没有找到任何有关堆栈跟踪的信息。是否可以从事件监听器回调中获取此信息?

我对Safari移动版和Chrome移动版的解决方案很感兴趣,但当然欢迎任何其他信息。

1 个答案:

答案 0 :(得分:2)

您可以做的最好的事情是使用库stacktrace.js,但如果您想自己做,请查看this linkthis link for V8。棘手的部分是,您将为不同的浏览器获得不同的格式,因此最好使用该库或探索它的代码。