- 对于异常监控来说,以下两种监控是必不可少的,分别是代码报错以及接口异常上报。
- 对于代码运行错误,通常的办法是使用
window.onerror
拦截报错。该方法能拦截到大部分的详细报错信息,但是也有例外
对于跨域的代码运行错误会显示
Script error.
对于这种情况我们需要给script
标签添加crossorigin
属性
对于某些浏览器可能不会显示调用栈信息,这种情况可以通过
arguments.callee.caller
来做栈递归
- 对于异步代码来说,可以使用
catch
的方式捕获错误。比如Promise
可以直接使用catch
函数,async await
可以使用try catch
- 但是要注意线上运行的代码都是压缩过的,需要在打包时生成
sourceMap
文件便于debug
- 对于捕获的错误需要上传给服务器,通常可以通过
img
标签的src
发起一个请求。 - 另外接口异常就相对来说简单了,可以列举出出错的状态码。一旦出现此类的状态码就可以立即上报出错。接口异常上报可以让开发人员迅速知道有哪些接口出现了大面积的报错,以便迅速修复问题。