请阐述前端错误处理与异常监控的基本概念,并列举常用的异常监控工具,说明它们各自的特点。
考察说明
考查对前端错误处理机制和异常监控体系的理解,以及常用工具的掌握程度。
回答思路
- 【回答框架 1】前端错误处理包括代码层错误和资源加载错误。代码错误主要通过 window.onerror 捕获运行时错误,Promise 异常需用 unhandledrejection 处理;资源加载错误可通过捕获 error 事件监听。
- 【回答框架 2】异常监控需要覆盖错误采集、上报、聚合分析、告警等环节。采集阶段需区分脚本错误、资源错误、接口异常;上报阶段可采用 image beacon 或 sendBeacon 方式,避免影响主流程;聚合分析则利用 sourcemap 还原压缩代码。
- 【回答框架 3】常用监控工具包括 Sentry、Fundebug、Badjs、阿里云 ARMS 等。Sentry 开源社区活跃,支持多语言和 sourcemap 还原;Fundebug 国内服务易接入;Badjs 轻量级,适合中小团队;ARMS 集成阿里云生态。
- 【回答框架 4】实践上需注意错误去重和采样,避免上报量过大;同时建立错误告警和分级机制,对高频错误及时响应。
- 【回答框架 5】还应结合日志和用户行为,定位错误上下文,提高排查效率。
- 【关键点 1】前端错误分类为脚本运行错误和资源加载错误,分别用 error 事件和 unhandledrejection 处理。
- 【关键点 2】监控体系包括采集、上报、还原、聚合告警,sourcemap 是定位压缩代码的关键。
- 【关键点 3】Sentry、Fundebug、Badjs、ARMS 是常见监控工具,各有适用场景。
- 【关键点 4】上报推荐使用 sendBeacon 或像素点,避免阻塞页面卸载。
- 【易错点 1】跨域脚本错误会隐藏详细堆栈,需配置 crossorigin 属性。
- 【易错点 2】只捕获 error 事件会遗漏 Promise 异常,必须单独处理 unhandledrejection。
- 【易错点 3】直接使用 window.onerror 可能无法捕获第三方库内部错误,需考虑全局代理。