这个不是很常用的功能, 但是想收集客户端的错误信息时却很有必要了解下。 捕获分为两个方面:
收集JS语法、执行错误
最初的是想直接获取控制台的错误信息; 然而这并不大可行,JS并没有这样的功能。
转换下思路
在错误发生时,将错误进行存储。
原生JS实现方式:
通过重载 window 对象下的 onerror 函数, 可以截取到这些信息。
window.onerror = function(errorMessage, scriptURI, lineNumber,columnNumber,errorObj) {
console.log("错误信息:" , errorMessage);
console.log("出错文件:" , scriptURI);
console.log("出错行号:" , lineNumber);
console.log("出错列号:" , columnNumber);
console.log("错误详情:" , errorObj);
}
框架实现方式:
只在angular 下做了实现,没有实现过的框架没有发言权;接下来将以angular为例。但要注意的是在部分框下这种方式是不生效的,原因是在框架解析代码前,所有的代码可以理解为都是文本而非js文件。
angular 环境下无法使用window.ondrror. 原因是angular体制内的代码通过$even 解析后并不会将错误移交给 window.onerror

本文介绍了如何在客户端捕获JS语法和执行错误,以及收集请求错误。通过重载`window.onerror`函数,可以在原生JS环境中捕获错误信息。在Angular环境下,由于其特殊的错误处理机制,可以通过重置`console.error`来捕获错误。同时,针对请求错误,可以通过封装XMLHttpRequest来捕获异常。
最低0.47元/天 解锁文章
3373

被折叠的 条评论
为什么被折叠?



