异常捕获
a、全局捕获
经过全局的接口,将捕获代码集中写在一个地方,能够利用接口有:vue
- window.addEventListener(‘error’) / window.addEventListener(“unhandledrejection”) / document.addEventListener(‘click’) 等
- 框架级别的全局监听,例如aixos中使用interceptor进行拦截,vue、react都有本身的错误采集接口
- 经过对全局函数进行封装包裹,实如今在调用该函数时自动捕获异常
- 对实例方法重写(Patch),在原有功能基础上包裹一层,例如对console.error进行重写,在使用方法不变的状况下也能够异常捕获
b、单点捕获
在业务代码中对单个代码块进行包裹,或在逻辑流程中打点,实现有针对性的异常捕获:react
- try…catch
- 专门写一个函数来收集异常信息,在异常发生时,调用该函数
- 专门写一个函数来包裹其余函数,获得一个新函数,该新函数运行结果和原函数如出一辙,只是在发生异常时能够捕获异常