javascript - 改进我们的 JavaScript 错误报告

标签 javascript ios error-handling jquery-mobile cordova

所以现在我们有一些通用代码来报告来 self 们的代码或第三方代码的错误。我们的项目是 iOS 的 JQM/Phonegap 项目。发生的事情是我们几乎总是得到同样无用的错误... TypeError: 'undefined' is not a function... 没有行号或其他有用的信息。有没有一种方法可以更改代码以获取未定义的内容或它在哪里?

window.onerror = function myErrorHandler(errorMsg, url, lineNumber) {
    //Handle errors not in a jquery event handler
    //DebugMessage(errorMSg + " "+ url + " " + lineNumber);
    var ex = new Error(errorMsg, url, lineNumber);
    HandleError(ex, "window.onerror");  
        //HandleError sends the error object to 
        //a webservice to log the error.
    return true;
};

关于调试 javascript 错误的任何提示也会有所帮助。

最佳答案

最近几个月,浏览器扩展了window.onerror 的签名以提供更多信息。

window.onerror = function(msg, file, line, col, error) {

  // backwards compat
  if (!error) {
    error = new Error(msg);
  }

  // send error to your logger

}

这应该能为您提供更多信息。但仍有一些事情需要更好的上下文。您应该为此检查一些第三方工具,例如 TrackJS会自动为您提供此信息,以及有关错误发生方式的额外信息。

免责声明:我是 TrackJS 的原作者之一,所以我知道很多关于 JavaScript 错误的知识:)

关于javascript - 改进我们的 JavaScript 错误报告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8934009/

相关文章:

javascript - 如何一起使用 2 个指令 - Angular 翻译和 Angular chop ?

ios - 关闭然后打开后如何在后台重新连接BLE设备?

ios - Xcode 8 在 iOS 9.2 及以下版本上构建崩溃

angular - Uncaught Error : Uncaught (in promise): TypeError: Super expression must either be null or a function in Angular v6

zend-framework - Zend Framework ErrorController 不能在现场工作?

javascript - jquery如何减去元素

javascript - 操作 dom 元素而不修改实际 dom 状态

javascript - jQuery "Slide"效果绕过 <br>

ios - 从按钮操作调用 AppDelegate 中的方法时出现错误。

arrays - Valgrind错误-条件跳转或移动取决于未初始化的值