自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

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

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

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

圖片圖片

錯(cuò)誤類型

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

常見錯(cuò)誤類型

1、SyntaxError

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

圖片圖片

圖片圖片

2、TypeError

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

圖片圖片

圖片圖片

3、ReferenceError

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

圖片圖片

圖片圖片

4、RangeError

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

圖片圖片

圖片圖片

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

1、ResourceError

ResourceError 指的是:資源加載錯(cuò)誤

圖片圖片

2、請(qǐng)求錯(cuò)誤

圖片圖片

錯(cuò)誤監(jiān)聽

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

try...catch

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

圖片圖片

window.onerror

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

圖片圖片

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

圖片圖片

window.addEventListener('error')

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

圖片圖片

Promise catch

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

圖片圖片

async/await

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

圖片圖片

window.addEventListener('unhandledrejection')

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

圖片圖片

Vue & React

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

圖片圖片

React 需要寫一個(gè)錯(cuò)誤邊界接收組件 ErrorBoundary

圖片圖片

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

2022-04-12 09:04:57

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

2021-07-14 11:25:12

CSSPosition定位

2025-01-21 08:00:00

限流微服務(wù)算法

2022-03-28 07:36:14

OAuth2安全服務(wù)器

2017-06-14 16:44:15

JavaScript原型模式對(duì)象

2018-06-10 16:31:12

2022-07-30 10:08:06

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

2018-12-06 09:12:58

2024-12-17 08:33:42

2020-04-08 10:39:59

前端web技巧

2022-07-01 08:00:44

異步編程FutureTask

2010-11-01 10:37:24

唐駿

2023-03-28 11:40:07

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

2022-05-18 09:01:31

JavaScriptEvalErrorURIError

2020-09-11 08:48:52

Python 3開發(fā)代碼

2021-06-03 08:05:46

VSCode 代碼高亮原理前端

2021-06-27 21:37:27

緩存雪崩穿透

2022-01-19 11:17:50

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

2022-03-18 14:33:22

限流算法微服務(wù)

2022-12-23 10:55:09

CIO方式團(tuán)隊(duì)
點(diǎn)贊
收藏

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