异常上报
Flashduty RUM 异常上报
概述
异常类型
JavaScript 异常
网络异常
资源加载异常
自定义异常
上报方式
自动错误捕获
TypeError
、ReferenceError
)。.catch()
处理的 Promise 错误。提示
network
来源)会 被过滤,避免数据污染。手动错误上报
addError
API,您可以手动上报已处理的异常、自定义错误或其他未被自动捕获的错误。手动上报适合以下场景:示例:上报自定义错误
示例:上报网络错误
示例:上报已处理异常
React 错误边界集成
componentDidCatch
中调用 addError
API,附加组件堆栈信息以便调试。示例:React 错误边界
使用方式
错误数据结构
属性 | 类型 | 描述 |
---|---|---|
error.source | string | 错误来源(如 console 、network 、custom 、source 、report )。 |
error.type | string | 错误类型或错误码(如 TypeError 、NetworkError )。 |
error.message | string | 简洁的可读性强的错误消息。 |
error.stack | string | 错误堆栈跟踪或补充信息。 |
error.causes | Array | 提供额外上下文的关联错误列表(可选)。 |
context | Object | 自定义上下文信息( 如页面状态、用户 ID),通过 addError 传入。 |
错误过滤与配置
source
为 custom
、source
、report
或 console
的错误。network
来源的无关错误。beforeSend
回调自定义错误处理逻辑,过滤或修改错误数据。示例:自定义错误过滤
常见问题与最佳实践
常见问题
1.
sourcemap
是否正确上传,若未上传,堆栈可能无法正确解析。2.
beforeSend
回调过滤特定错误来源或消息。
3.
fingerprint
属性正确设置,且值为字符串。beforeSend
回调是否被正确调用。最佳实践
1.
addError
中附加业务相关上下文(如用户 ID、操作类型),便于问题定位。{ userId: "12345", action: "submit_form" }
。2.
3.
beforeSend
过滤低价值错误,避免数据过载。4.