对我司自研的前端监控系统的前端SDK进行总结
错误数据采集
js错误
监控的方式主要有:
try-catch
window.onerror
window.addEventListener('error',()=>{})
我们使用 window.onerror 捕获一般情况下 JS 错误的异常信息。捕获 JS 错误的方式有两种,window.onerror 和 window.addEventListener(‘error’)。一般情况下,捕获 JS 异常不推荐使用 addEventListener(‘error’),主要是因为它没有堆栈信息。而window.onerror可能会有被覆盖的风险。
// js运行错误
window.onerror = (msg, url, row, col, error) => {
this.logError({
type: 'javascript',
msg,
path: url,
row,
col,
errorMsg: error.stack,
time: Date.now()
})
}
promise错误
当 Promise 内发生 JS 错误或者 reject 信息未被业务处理的情况时,会抛出unhandledrejection,并且这个错误不会被 window.onerror 以及 window.addEventListener('error') 捕获,这里需要用专门的 window.addEven