欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Vue errorHandler異常捕獲

 更新時(shí)間:2023年10月02日 15:45:42   投稿:wdc  
這篇文章主要介紹了Vue errorHandler異常捕獲,需要的朋友可以參考下

異常捕獲介紹

1.在日常前端開(kāi)發(fā)中對(duì)于異常監(jiān)控的方式可以采用 window.onerror 方式進(jìn)行監(jiān)聽(tīng)

	window.onerror = function(message, source, lineno, colno, error) {
	 	// message:錯(cuò)誤信息(字符串)
		// source:發(fā)生錯(cuò)誤的腳本URL
		// lineno:發(fā)生錯(cuò)誤的行號(hào)
		// colno:發(fā)生錯(cuò)誤的列號(hào)
		// error:Error對(duì)象
	}
	//或者
	window.addEventListener('error', function(e) { 
	  console.log(e)
	  console.log(e.target)
	})

2.在vue中需要使用errorHandler方法onerror方法無(wú)法捕獲Vue組件信息

Vue.config.errorHandler = function (err, vm, info) {
	  // err: 具體錯(cuò)誤信息
	  // vm: 當(dāng)前錯(cuò)誤所在的Vue實(shí)例
	  // info: 錯(cuò)誤所在的生命周期鉤子
	}

errorHandler實(shí)際應(yīng)用

針對(duì)項(xiàng)目中錯(cuò)誤的js語(yǔ)法和接口請(qǐng)求報(bào)錯(cuò)進(jìn)行捕獲,需要注意的是接口捕獲需要手動(dòng)捕獲
1.在main.js中注冊(cè)

//因?yàn)榻涌趫?bào)錯(cuò)需要手動(dòng)捕獲 創(chuàng)建公用方法
const errorHandler = (err, vm, info) => {
	if(err.isAxiosError){
		//axios請(qǐng)求錯(cuò)誤
	}else{
		//js語(yǔ)法錯(cuò)誤
		console.log('err:'err.toString())
	}
}
//調(diào)用
Vue.config.errorHandler = errorHandler
//axios手動(dòng)捕獲使用 綁定 prototype
Vue.prototype.$throw = (error) => errorHandler(error, this)

2.axios錯(cuò)誤捕獲在封裝好的axios請(qǐng)求中進(jìn)行錯(cuò)誤響應(yīng)捕獲,將錯(cuò)誤信息交給 errorHadaler 函數(shù)進(jìn)行處理

Vue.$throw(error)
//或 
Vue.prototype.$throw(error)

對(duì)于error信息的解析

1.通過(guò)Json.stringify()對(duì)err進(jìn)行序列化

const errorHandler = (err, vm, info) => {
	if(err.isAxiosError){
		//axios請(qǐng)求錯(cuò)誤為手動(dòng)捕獲 不需要進(jìn)行解析處理 
	}else{
		const errJson = JSON.stringify(err, Object.getOwnPropertyNames(err), 2)
		console.log(JSON.parse(errJson ))
	}
}

2.通過(guò)error-stack-parser解析error堆棧

安裝方式:
npm install error-stack-parseryarn add error-stack-parser

//引入error-stack-parser
import ErrorStackParser from 'error-stack-parser'
const errorHandler = (err, vm, info) => {
	if(err.isAxiosError){
		//axios請(qǐng)求錯(cuò)誤為手動(dòng)捕獲 不需要進(jìn)行解析處理 
	}else{
		const errJson = ErrorStackParser.parse(err)[0]
		console.log(errJson)
		//通過(guò)fileName截取頁(yè)面名稱
		const fileName = stackInfo.fileName.match(/src.*?.vue/g)[0]
		console.log(fileName)
	}
}

到此這篇關(guān)于Vue errorHandler異常捕獲的文章就介紹到這了,更多相關(guān)Vue errorHandler異常捕獲內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論