前端监控控制台错误,不在控制台抛出
- 错误监控概述
- 脚本错误监控
- 请求错误监控
- 资源错误监控
- 跨域脚本错误捕获
错误监控概述
按照错误监控错误监控可以分为:脚本错误监控、请求错误监控以及资源错误监控。
1. 脚本错误监控
脚本错误大体可以分为两种:编译时错误以及运行时错误。其中,编译时错误一般在开发阶段就会发现,配合 lint 工具比如 eslint、tslint 等以及 git 提交插件比如 husky 等,基本可以保证线上代码不出现低级的编译时错误。大厂一般都有发布前置检测平台,能够在发布前提前发现编译时错误,当然,原理依然和之前所说的类似。
而发现并上报运行时错误就是前端检测平台的本质工作啦,一般来说,脚本错误监控指的就是运行时错误监控。
说到脚本错误监控,想到的第一个就是 try catch !
在编写 JavaScript 时,我们为了防止出现错误阻塞程序,我们会通过 try catch 捕获错误,对于错误捕获,这是最简单也是最通用的方案。
但是,try catch 捕获错误是侵入式的,需要在开发代码时即提前进行处理,而作为一个监控系统,无法做到在所有可能产生错误的代码片段中都嵌入 try catch。所以,我们需要全局捕获脚本错误。
1.1 常规脚本错误
当页面出现脚本错误时,就会产生 onerror 事件,我们只需捕获该事件即可。
/**
* @description window.onerror 全局捕获错误
* @param event 错误信息,如果是
* @param source 错误源文件URL
* @param lineno 行号
* @param colno 列号
* @param error Error对象
*/
window.onerror = function (event, source, lineno, colno