zoukankan      html  css  js  c++  java
  • atitit.js浏览器环境下的全局异常捕获

    atitit.js浏览器环境下的全局异常捕获

     

     

     window.onerror = function(errorMessage, scriptURI, lineNumber) {

     

    var s= JSON.stringify(arguments); alert(s);

     //alert(errorMessage

     //message: errorMessage,

     //script: scriptURI,

     //line: lineNumber

     

    }

     

    不同的浏览器对onerror的实现不同,手机和pc不同,参数定义都不同。参数数量。所以使用json比较好。。

    window.onerror

    对于 try-catch 覆盖不到的地方,如果出现异常就只能通过 window.onerror 来捕获了。

    window.onerror =
     function(errorMessage, scriptURI, lineNumber) {
     reportError({
     message: errorMessage,
     script: scriptURI,
     line: lineNumber
     });
    }

    注意不要耍小聪明使用 window.addEventListener  window.attachEvent 的形式去监听 window.onerror。很多浏览器只实现了 window.onerror,或者是只有 window.onerror 的实现是标准的。考虑到标准草案定义的也是 window.onerror,我们使用 window.onerror 就好了。

    属性丢失 

    假设我们有一个 reportError 函数用来收集捕获到的异常,然后批量发送到服务器端存储以便查询分析,那么我们会想要收集哪些信息呢?比较有用的信息包括:错误类型(name)、错误消息(message)、脚本文件地址(script)、行号(line)、列号(column)、堆栈跟踪(stack)。如果一个异常是通过 try-catch 捕获到的,这些信息都在 Error 对象上(主流浏览器都支持),所以 reportError 也能收集到这些信息。但如果是通过 window.onerror 捕获到的,我们都知道这个事件函数只有 3 个参数,所以这 3 个参数意外的信息就丢失了。

     

     

    JS高级调试技巧:捕获和分析 JavaScript Error详解_javascript技巧_脚本之家.htm

    JS高级调试技巧:捕获和分析 JavaScript Error详解_javascript技巧_脚本之家.htm

    Json对象与Json字符串互转(4种转换方式)_json_脚本之家.htm

     

    作者:: 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 ) 

    汉字名:艾提拉(艾龙)   EMAIL:1466519819@qq.com

    转载请注明来源: http://blog.csdn.net/attilax

    atiend

     

  • 相关阅读:
    Linux 内核源码中likely()和unlikely()【转】
    详解likely和unlikely函数【转】
    [arm驱动]Linux内核开发之阻塞非阻塞IO----轮询操作【转】
    Linux时间子系统之六:高精度定时器(HRTIMER)的原理和实现【转】
    Linux下的hrtimer高精度定时器【转】
    Linux 高精度定时器hrtimer 使用示例【转】
    Linux 进程等待队列【转】
    【转】【Android】对话框 AlertDialog -- 不错不错
    【转】 CATransform3D 矩阵变换之立方体旋转实现细节
    【转】如何在IOS中使用3D UI
  • 原文地址:https://www.cnblogs.com/attilax/p/5963223.html
Copyright © 2011-2022 走看看