偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

不知道前端代碼哪里報(bào)錯了?我有七種方式去監(jiān)控它!

開發(fā) 前端
try...catch?是捕獲錯誤的重要方式,但是它只能捕獲運(yùn)行報(bào)錯、同步報(bào)錯,捕獲不了?編譯報(bào)錯、異步報(bào)錯。

我之前寫了一個前端監(jiān)控的庫 sunshine-track,很多人都來問我說,錯誤監(jiān)控 這個環(huán)節(jié)的思路是什么,要怎么在前端項(xiàng)目中做錯誤監(jiān)控?

鏈接:https://github.com/sanxin-lin/sunshine-track

圖片圖片

錯誤類型

我們先來說說前端中的錯誤類型有哪一些

常見錯誤類型

1、SyntaxError

SyntaxError 是解析時(shí)發(fā)生語法錯誤,這個錯誤是捕獲不到的,因?yàn)樗前l(fā)生在構(gòu)建階段,而不是運(yùn)行階段

圖片圖片

圖片圖片

2、TypeError

TypeError 指的是:值不是所期待的類型

圖片圖片

圖片圖片

3、ReferenceError

ReferenceError 指的是:引用未聲明的變量

圖片圖片

圖片圖片

4、RangeError

RangeError 指的是:當(dāng)一個值不在其所允許的范圍或者集合中,通常會在無限遞歸時(shí)報(bào)錯

圖片圖片

圖片圖片

網(wǎng)絡(luò)錯誤

1、ResourceError

ResourceError 指的是:資源加載錯誤

圖片圖片

2、請求錯誤

圖片圖片

錯誤監(jiān)聽

接下來講一下我們應(yīng)該如何監(jiān)聽這些錯誤

try...catch

try...catch 是捕獲錯誤的重要方式,但是它只能捕獲運(yùn)行報(bào)錯、同步報(bào)錯,捕獲不了 編譯報(bào)錯、異步報(bào)錯

圖片圖片

window.onerror

代碼報(bào)錯時(shí),會觸發(fā) window.onerror 回調(diào)函數(shù),這個回調(diào)函數(shù)接受了以下幾個參數(shù)

圖片圖片

但是 window.onerror 也是有缺點(diǎn)的,捕獲不了 編譯報(bào)錯、資源報(bào)錯

圖片圖片

window.addEventListener('error')

由于 冒泡機(jī)制 ,當(dāng)資源報(bào)錯 時(shí)觸發(fā) error,會冒泡到 window 上,所以 window.addEventListener('error') 可以捕獲到 資源報(bào)錯,但是它也只能捕獲 script、css、img 這些標(biāo)簽加載資源的報(bào)錯,而捕獲不了 new Image 這種資源加載報(bào)錯,且捕獲不了 網(wǎng)絡(luò)錯誤

圖片圖片

Promise catch

當(dāng) Promise 狀態(tài)變成 rejected 時(shí),可以使用 catch 方法去捕獲

圖片圖片

async/await

try...catch 雖然捕獲不了異步錯誤,但是我們知道 async/await 是用同步的方式去執(zhí)行異步

圖片圖片

window.addEventListener('unhandledrejection')

無論是 Promise、async/await 歸根結(jié)底都是 Promise異步報(bào)錯,都可以使用 window.addEventListener('unhandledrejection') 來捕獲錯誤

圖片圖片

Vue & React

Vue 提供了 Vue.config.errorHandler 這個屬性,可傳入錯誤回調(diào),只要是組件里報(bào)錯了,都會被這個回調(diào)函數(shù)捕獲

圖片圖片

React 需要寫一個錯誤邊界接收組件 ErrorBoundary

圖片圖片

責(zé)任編輯:武曉燕 來源: 前端之神
相關(guān)推薦

2021-07-14 11:25:12

CSSPosition定位

2022-04-12 09:04:57

前端監(jiān)控數(shù)據(jù)采集

2025-01-21 08:00:00

限流微服務(wù)算法

2022-03-28 07:36:14

OAuth2安全服務(wù)器

2018-06-10 16:31:12

2022-07-30 10:08:06

MQTT?協(xié)議物聯(lián)網(wǎng)

2018-12-06 09:12:58

2017-06-14 16:44:15

JavaScript原型模式對象

2024-12-17 08:33:42

2020-04-08 10:39:59

前端web技巧

2020-09-11 08:48:52

Python 3開發(fā)代碼

2021-06-03 08:05:46

VSCode 代碼高亮原理前端

2021-06-27 21:37:27

緩存雪崩穿透

2010-11-01 10:37:24

唐駿

2022-07-01 08:00:44

異步編程FutureTask

2023-03-28 11:40:07

邊緣計(jì)算云計(jì)算

2022-05-18 09:01:31

JavaScriptEvalErrorURIError

2022-01-19 11:17:50

服務(wù)質(zhì)量 QoS云服務(wù)網(wǎng)絡(luò)流量

2022-03-18 14:33:22

限流算法微服務(wù)

2020-06-12 09:20:33

前端Blob字符串
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號