錯(cuò)誤類型腕巡,錯(cuò)誤捕獲,錯(cuò)誤監(jiān)控上報(bào)

一跷叉,錯(cuò)誤類型

? ? 1逸雹,SyntaxError:語法錯(cuò)誤

? ? 2,Uncaught ReferenceError:引用錯(cuò)誤云挟,引用一個(gè)不存在的變量時(shí)發(fā)生的錯(cuò)誤。將一個(gè)值分配給無法分配的對(duì)象转质,比如對(duì)函數(shù)的運(yùn)行結(jié)果或者函數(shù)賦值园欣。

? ? 3,RangeError:范圍錯(cuò)誤休蟹,RangeError是當(dāng)一個(gè)只超出有效范圍時(shí)發(fā)生的錯(cuò)誤沸枯。主要的有幾種情況,第一是數(shù)組長度為負(fù)數(shù)赂弓,第二是Number對(duì)象的方法參數(shù)超出范圍绑榴,以及函數(shù)堆棧超過最大值。

? ? 4盈魁,TypeError類型錯(cuò)誤翔怎,變量或參數(shù)不是預(yù)期類型時(shí)發(fā)生的錯(cuò)誤。比如使用new字符串杨耙、布爾值等原始類型和調(diào)用對(duì)象不存在的方法就會(huì)拋出這種錯(cuò)誤赤套,因?yàn)閚ew命令的參數(shù)應(yīng)該是一個(gè)構(gòu)造函數(shù)。

? ? 5珊膜,URIError容握,URL錯(cuò)誤,主要是相關(guān)函數(shù)的參數(shù)不正確车柠。

? ? 6剔氏,EvalError eval()函數(shù)執(zhí)行錯(cuò)誤,當(dāng)eval()函數(shù)沒有被正確執(zhí)行時(shí)竹祷,會(huì)拋出evalError錯(cuò)誤谈跛。

二,錯(cuò)誤捕獲機(jī)制

? ? 1溶褪,監(jiān)聽 window.onerror(運(yùn)行時(shí)錯(cuò)誤捕獲币旧,不能捕獲promise的異常錯(cuò)誤信息)

? ??????當(dāng)發(fā)生 JavaScript 運(yùn)行時(shí)錯(cuò)誤(包括處理程序中引發(fā)的語法錯(cuò)誤和異常)時(shí),使用接口ErrorEvent 的 error 事件將在 window 被觸發(fā)猿妈,并被 window.onerror() 調(diào)用吹菱。

? ? 2巍虫,window.addEventListener("unhandledrejection"),promise沒有catch錯(cuò)誤

? ??????Promise?被 reject 并且沒有得到處理的時(shí)候鳍刷,會(huì)觸發(fā)?unhandledrejection?事件占遥。所以可以對(duì)此事件進(jìn)行監(jiān)聽,將錯(cuò)誤信息捕獲上報(bào)输瓜。

? ? 3瓦胎,try/catch

? ? 4,vue:Vue.config.errorHandler

? ? 5尤揣,vue中的errorCaptured鉤子函數(shù)搔啊,捕獲子組件的錯(cuò)誤

? ? 5,react:以下兩種方法中任意一個(gè)被定義時(shí)北戏,這個(gè)組件就會(huì)成為?Error Boundary?組件负芋,可以阻止子組件渲染時(shí)報(bào)錯(cuò)。

? ? ? ? 1)static getDerivedStateFromError: 在出錯(cuò)后有機(jī)會(huì)修改 state 觸發(fā)最后一次錯(cuò)誤 fallback 的渲染嗜愈。返回{hasError: true}來呈現(xiàn)回退UI

? ? ? ? 2)componentDidCatch: 用于出錯(cuò)時(shí)副作用代碼旧蛾,比如錯(cuò)誤上報(bào)等。

? ? 6蠕嫁,我們利用webpack打包壓縮后生成一份對(duì)應(yīng)腳本的map文件就能進(jìn)行追蹤了锨天,在webpack中開啟source-map功能

三,錯(cuò)誤上報(bào)

? ? 1剃毒,window.onerror方法中病袄,上報(bào)服務(wù)器

? ? 2,如果使用source-map壓縮的迟赃,使用node中間層解析或者服務(wù)器解析

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末陪拘,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子纤壁,更是在濱河造成了極大的恐慌左刽,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,576評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件酌媒,死亡現(xiàn)場(chǎng)離奇詭異欠痴,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)秒咨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,515評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門喇辽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人雨席,你說我怎么就攤上這事菩咨。” “怎么了?”我有些...
    開封第一講書人閱讀 168,017評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵抽米,是天一觀的道長特占。 經(jīng)常有香客問我,道長云茸,這世上最難降的妖魔是什么是目? 我笑而不...
    開封第一講書人閱讀 59,626評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮标捺,結(jié)果婚禮上懊纳,老公的妹妹穿的比我還像新娘。我一直安慰自己亡容,他們只是感情好嗤疯,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,625評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著萍倡,像睡著了一般身弊。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上列敲,一...
    開封第一講書人閱讀 52,255評(píng)論 1 308
  • 那天,我揣著相機(jī)與錄音帖汞,去河邊找鬼戴而。 笑死,一個(gè)胖子當(dāng)著我的面吹牛翩蘸,可吹牛的內(nèi)容都是我干的所意。 我是一名探鬼主播,決...
    沈念sama閱讀 40,825評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼催首,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼扶踊!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起郎任,我...
    開封第一講書人閱讀 39,729評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤秧耗,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后舶治,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體分井,經(jīng)...
    沈念sama閱讀 46,271評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,363評(píng)論 3 340
  • 正文 我和宋清朗相戀三年霉猛,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了尺锚。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,498評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡惜浅,死狀恐怖瘫辩,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤伐厌,帶...
    沈念sama閱讀 36,183評(píng)論 5 350
  • 正文 年R本政府宣布承绸,位于F島的核電站,受9級(jí)特大地震影響弧械,放射性物質(zhì)發(fā)生泄漏八酒。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,867評(píng)論 3 333
  • 文/蒙蒙 一刃唐、第九天 我趴在偏房一處隱蔽的房頂上張望羞迷。 院中可真熱鬧,春花似錦画饥、人聲如沸衔瓮。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,338評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽热鞍。三九已至,卻和暖如春衔彻,著一層夾襖步出監(jiān)牢的瞬間薇宠,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,458評(píng)論 1 272
  • 我被黑心中介騙來泰國打工艰额, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留澄港,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,906評(píng)論 3 376
  • 正文 我出身青樓柄沮,卻偏偏與公主長得像回梧,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子祖搓,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,507評(píng)論 2 359