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

js中setTimeout導(dǎo)致try catch無法捕獲異常的問題解決

 更新時(shí)間:2025年07月27日 10:56:47   作者:北葦渡江  
本文主要介紹了在JavaScript中捕獲setTimeout及ajax異步請(qǐng)求回調(diào)里的未捕獲異常的問題解決,具有一定的參考價(jià)值,感興趣的可以了解一下

碰到一個(gè)有趣的小問題,setTimeout、ajax異步請(qǐng)求回調(diào)里的代碼發(fā)生了異常,try catch卻沒有捕獲到。

function test(){
  	try {
		setTimeout(function(){
			throw 'error';
		}, 1);
	} catch (e) {
		console.log("try catch里捕獲的異常" + e);
	}
}

function testAjax(){
	try {	
		$.ajax({
		  url: "xxx",
		  cache: false,
		  success: function(data){
		    throw 'error';
		  }
		});
	} catch (e) {
		console.log("try catch里捕獲的異常" + e);
	}
}

運(yùn)行結(jié)果如下:

那么如何捕獲這里面的異常呢?總不可能在每個(gè)延時(shí)函數(shù)里再增加異常捕獲。
最終找到了:window.onerror

// 注意事項(xiàng):js中對(duì)象初始化慢于方法,在方法調(diào)用時(shí)最好加個(gè)延遲,讓window.onerror加載完畢。
window.onerror = function(message, source, lineno, colno, error){ 
	// message:錯(cuò)誤消息(字符串)。在HTML οnerrοr=""處理程序event(sic!)中可用。
	// source:引發(fā)錯(cuò)誤的腳本的URL(字符串)
	// lineno:發(fā)生錯(cuò)誤的行號(hào)(數(shù)值)
	// colno:發(fā)生錯(cuò)誤的行的列號(hào)(數(shù)值)
	// error:錯(cuò)誤對(duì)象(對(duì)象)
	var message = [
            'Message: ' + msg,
            'URL: ' + url,
            'Line: ' + lineNo,
            'Column: ' + columnNo,
            'Error object: ' + JSON.stringify(error)
        ].join(' - ');
	console.log(message);
	// 當(dāng)函數(shù)返回true時(shí),這可以防止觸發(fā)默認(rèn)事件處理程序(就是瀏覽器控制臺(tái)打印紅色的異常信息)。
	return true;
};

到此這篇關(guān)于js中setTimeout導(dǎo)致try catch無法捕獲異常的問題解決的文章就介紹到這了,更多相關(guān)js try catch無法捕獲異常內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 輕松掌握J(rèn)avaScript中介者模式

    輕松掌握J(rèn)avaScript中介者模式

    這篇文章主要幫助大家輕松掌握J(rèn)avaScript中介者模式,告訴大家什么是js中介者模式?js中介者模式的作用是什么,感興趣的小伙伴們可以參考一下
    2016-08-08
  • 基于Bootstrap框架實(shí)現(xiàn)圖片切換

    基于Bootstrap框架實(shí)現(xiàn)圖片切換

    這篇文章主要介紹了基于Bootstrap框架實(shí)現(xiàn)圖片切換的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-03-03
  • iconfont的三種使用方式詳解

    iconfont的三種使用方式詳解

    這篇文章主要介紹了iconfont的三種使用方式,需要的朋友可以參考下
    2018-08-08
  • JavaScript?管道運(yùn)算符及工作原理

    JavaScript?管道運(yùn)算符及工作原理

    這篇文章主要介紹了JavaScript?管道運(yùn)算符,管道運(yùn)算符為我們的代碼添加了大量上下文,并簡(jiǎn)化了操作,以便以后可以擴(kuò)展它們,本文結(jié)合示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05
  • MUI頂部選項(xiàng)卡的用法(tab-top-webview-main)詳解

    MUI頂部選項(xiàng)卡的用法(tab-top-webview-main)詳解

    最近用MUI做手機(jī)app應(yīng)用的時(shí)候,遇到的小bug,這里小編給大家分享MUI頂部選項(xiàng)卡的用法(tab-top-webview-main)詳解,感興趣的朋友一起看看吧
    2017-10-10
  • javascript中eval和with用法實(shí)例總結(jié)

    javascript中eval和with用法實(shí)例總結(jié)

    這篇文章主要介紹了javascript中eval和with用法,結(jié)合實(shí)例形式總結(jié)分析了JavaScript中eval和with的功能、用法與相關(guān)注意事項(xiàng),具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-11-11
  • 詳解單頁(yè)面路由工程使用微信分享及二次分享解決方案

    詳解單頁(yè)面路由工程使用微信分享及二次分享解決方案

    這篇文章主要介紹了詳解單頁(yè)面路由工程使用微信分享及二次分享解決方案,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-02-02
  • javascript+xml技術(shù)實(shí)現(xiàn)分頁(yè)瀏覽

    javascript+xml技術(shù)實(shí)現(xiàn)分頁(yè)瀏覽

    基于web的技術(shù)中,分頁(yè)是一個(gè)老的不能再老的,但大家津津樂道的問題,隨著xml技術(shù)的日漸應(yīng)用,把xml應(yīng)用到分頁(yè)當(dāng)中,也是一種可能,當(dāng)然網(wǎng)上的教程很多,當(dāng)我都是看得稀里糊涂,索性自己寫一個(gè),與大家分享、指正。
    2008-07-07
  • event對(duì)象的方法 兼容多瀏覽器

    event對(duì)象的方法 兼容多瀏覽器

    event對(duì)象的方法 兼容多瀏覽器 同時(shí)兼容ie和ff的寫法
    2009-06-06
  • 微信小程序吸底區(qū)域適配iPhoneX的實(shí)現(xiàn)

    微信小程序吸底區(qū)域適配iPhoneX的實(shí)現(xiàn)

    這篇文章主要介紹了微信小程序吸底區(qū)域適配iPhoneX的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04

最新評(píng)論