腳本運(yùn)行時(shí)錯(cuò)誤捕獲
-
window.onerror
監(jiān)聽全局錯(cuò)誤發(fā)生延塑,發(fā)生錯(cuò)誤會(huì)阻止后續(xù)的腳本運(yùn)行
window.onerror = err => {}
a
console.log(1) // 不會(huì)運(yùn)行
-
try - catch
捕獲try
代碼塊里的錯(cuò)誤炕吸,不會(huì)影響后續(xù)的代碼運(yùn)行
try { a } catch (err) {}
console.log(1) // 1
資源加載錯(cuò)誤
-
Object.onerror
只能在創(chuàng)建時(shí)監(jiān)聽單個(gè)元素的error
事件
let script = document.createElement('script');
script.onerror = err=>{
console.log(err)
}
script.src = '2.js';
document.body.append(script);
// 不行
<script src="2.js" id='js'></script>
<script>
document.querySelector("#js").onerror = err=>{
console.log(err)
}
</script>
-
performance.getEntries()
返回資源加載成功的元素?cái)?shù)組」┝叮現(xiàn)代化瀏覽器都支持少梁,IE9不支持 -
window.addEventListener
監(jiān)聽全局錯(cuò)誤的發(fā)生饼问,包括運(yùn)行時(shí)錯(cuò)誤和資源加載錯(cuò)誤
window.addEventListener('error',err=>{
console.log(err)
},true)
let script = document.createElement('script');
script.src = '2.js';
document.body.append(script);
總結(jié)
監(jiān)控到錯(cuò)誤我們可以發(fā)送到服務(wù)器(視業(yè)務(wù)而定)考杉,這樣我們就可以知道在不同用戶環(huán)境下發(fā)生的錯(cuò)誤策精,然后重現(xiàn)錯(cuò)誤,修復(fù)崇棠。