错误上报
一、JS运行时错误
方式1:window.onerror(推荐)
含有详细的error堆栈信息
方式2:window.addEventListener('error', event => {})
二、资源加载错误
使用window.addEventListener('error', event => {}),但要限制错误类型:
三、未处理的Promise错误
使用unhandledrejection
事件监听处理
四、异步请求(fetch、xhr)错误
对两个API封装时增加错误捕获:
fetch:在then后面增加catch
xhr:增加xhr上的
error
事件监听
五、框架
vue:
app.config.errorHandler
react:
componentDidCatch
六、script error
跨域错误,请求第三方域名下的脚本可能发生错误,浏览器处于安全考虑隐藏了具体的错误信息。
如果想拿到具体的信息,解决方法:
方法1:
<script>上添加 crossorigin="anonymous" 属性
方法2:
如果第三方资源是通过JS动态加载的,使用try...catch
包裹用于加载的代码块
参考:
Last updated