如何消除JavaScript全局错误处理程序中的“脚本错误”?

时间:2018-09-20 15:00:36

标签: javascript error-handling dom-events

我有一个全局错误处理程序,因此可以捕获JavaScript中的错误并将其通过AJAX发布到我的服务器。看起来像:

window.addEventListener('error', function(event) {
  // pull error info from event
  // post to server via AJAX
});

在某些时候效果很好。但是,我收到很多错误通知,其中消息为Script error,堆栈为undefined,行和列为0

我的JavaScript包位于CDN上,URL与实际网站的URL不同,因此我在crossorigin="anonymous"元素中添加了<script>属性,并更新了CDN以添加响应标头{{1 }}。这减少了无信息的Access-Control-Allow-Origin: *通知的数量,但并没有消除所有通知。

我已阅读到任何偶然引发错误的回调都将产生Script error通知,因为该窗口无法使用该堆栈。我想尝试用try / catch包装回调,在catch块中重新抛出错误-希望窗口随后可以访问有关错误的有用信息。

但是,我无法复制Script error。我在几个不同的click事件处理程序中添加了一行乱码,当触发这些处理程序时,我的全局错误处理程序将捕获包含所有堆栈信息的错误。

首先,如何在回调中重现普通的Script error

第二,我包装回叫的计划是捕获有意义的错误信息的正确方法吗?

0 个答案:

没有答案