如何捕获所有JavaScript错误并发送到服务器

如何捕获所有JavaScript错误并发送到服务器

如今有大量的Web API可用。其中之一是 GlobalEventHandlers ,一个用于在引发错误时调用的 OnErrorEventHandler

GlobalEventHandlersonerror 属性是一个处理错误事件的 EventHandler 。这对于捕获在测试过程中从未发生的异常非常有用。不同的错误事件有:

  • 当发生JavaScript运行时错误时,会调用 window.onerror()
  • 当资源加载失败时,会调用元素上的 onerror() 处理程序。这些错误事件可以通过设置useCapture为True的 window.addEventListener 来处理。

可以通过此浏览器事件 onerror 捕获所有JavaScript错误。这是记录客户端错误并向服务器报告它们的最简单方法之一。可以通过将函数分配给 window.onerror 来实现:

Syntax:

window.onerror = function (msg, source, lineNo, columnNo, error) {
   // 执行错误处理的函数
}

将分配给 window.onerror 的函数传递以下参数:

  • msg: 与错误相关的消息。
  • source: 与错误相关的脚本或文档的URL。
  • lineNo: 行号。
  • columnNo: 列号。
  • error: 与此错误相关的Error对象。

如果返回值为true,只有错误会被处理。

示例:

捕获错误: 使用下面的代码可以捕获所有的错误。

<!DOCTYPE html>
<html>
    <head>
        <title>
            捕获所有JavaScript错误并将其发送到服务器
        </title>
    </head>
    <body>
        <center>
        <h1 style="color: green;">
            GeeksforGeeks
        </h1>
        <b>
            捕获所有JavaScript错误并将其发送到服务器
        </b>
        <a href="javascript:myalert()">click here</a>

        <script>
            window.onerror = 
              function (msg, source, lineNo, columnNo, error) {
                alert("错误:" + msg + 
                      "\n脚本:" + source + 
                      "\n行:" + lineNo + 
                      "\n列:" + columnNo + 
                      "\n堆栈跟踪:" + error);
                return true;
            };

            var myalert = function () {
                alert(gfg);
            };
        </script>
        </center>
    </body>
</html>

输出:

如何捕获所有JavaScript错误并发送到服务器

发送错误到服务器: 在为了尽可能捕获尽可能多的错误信息而接入 window.onerror 之后,只需进行一最后一步:将错误信息传输到服务器。在下面的示例中,我们使用jQuery的AJAX函数将数据传输到服务器:

function captureError(err) {
  var errorData = {
    name: err.name, 
    message: err.line, 
    url: document.location.href,
    stack: err.stack 
  };
  $.post('/logger/js/', {
    data: errorData
  });
}

阅读更多:JavaScript 教程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程