对于代码运行错误,通常的办法是使用 window.onerror
拦截报错。该方法能拦截到大部分的详细报错信息,但是也有例外
对于跨域的代码运行错误会显示 Script error
。 对于这种情况我们需要给 script
标签添加 crossorigin
属性
对于某些浏览器可能不会显示调用栈信息,这种情况可以通过 arguments.callee.caller
来做栈递归
对于异步代码来说,可以使用 catch
的方式捕获错误。比如 Promise
可以直接使用 catch
函数,async
await
可以使用 try catch
但是要注意线上运行的代码都是压缩过的,需要在打包时生成 sourceMap
文件便于 debug
。
对于捕获的错误需要上传给服务器,通常可以通过 img
标签的 src
发起一个请求。
本文作者:毛超颖
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!