我想知道是否有经验在客户端全局处理JavaScript错误并将它们从浏览器发送到服务器。
我的意思很清楚,我想知道客户端发生的每个异常、错误、编译错误等,并将它们发送到服务器进行报告。
我主要使用MooTools和head.js
(用于JS方面)以及Django用于服务器端。
我想知道是否有经验在客户端全局处理JavaScript错误并将它们从浏览器发送到服务器。
我的意思很清楚,我想知道客户端发生的每个异常、错误、编译错误等,并将它们发送到服务器进行报告。
我主要使用MooTools和head.js
(用于JS方面)以及Django用于服务器端。
我会查看 window.onerror
例子:
window.onerror = function(message, url, lineNumber) {
//save error and send to server for example.
return true;
};
记住,返回true将阻止默认处理程序的触发,而返回false将允许默认处理程序运行。
window.onerror = function(message, source, lineno, colno, error) {
if (error) message = error.stack;
ga('send', 'event', 'window.onerror', message, navigator.userAgent);
}
关于上面的代码,有几点需要注意:
当代码放置好后,您可以按以下步骤查看用户的Javascript错误:
window.addEventListener('error', function (e) {
//It Will handle JS errors
})
捕获AngularJS错误:
app.config(function ($provide) {
$provide.decorator('$exceptionHandler', function ($delegate) {
return function (exception, cause) {
//It will handle AngualarJS errors
}
})
})
Promise
、setTimeout
、setInterval
或其他宏/微任务调用):var errNum = 0; window.addEventListener('error', () => { console.log(
Error #${++errNum}); throw new Error(); }); setTimeout(() => {throw new Error()}, 100);
- Mike Hill