最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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無(wú)法捕獲異常的問(wèn)題解決的文章就介紹到這了,更多相關(guān)js try catch無(wú)法捕獲異常內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 3款實(shí)用的在線JS代碼工具(國(guó)外)

    3款實(shí)用的在線JS代碼工具(國(guó)外)

    本文為大家推薦3款非常實(shí)用的在線JS代碼工具,可以幫助你方便地處理JavaScript或jQuery代碼
    2012-03-03
  • 防止瀏覽器記住用戶(hù)名及密碼的簡(jiǎn)單實(shí)用方法

    防止瀏覽器記住用戶(hù)名及密碼的簡(jiǎn)單實(shí)用方法

    很多瀏覽器都有自動(dòng)填寫(xiě)功能,我在input上使用了autocomplete="off",但在有的瀏覽器上還是被記住了用戶(hù)名跟密碼,請(qǐng)問(wèn)有沒(méi)有更有效及簡(jiǎn)便的方法來(lái)防止瀏覽器記住用戶(hù)名及密碼
    2013-04-04
  • 深入淺析JavaScript中對(duì)事件的三種監(jiān)聽(tīng)方式

    深入淺析JavaScript中對(duì)事件的三種監(jiān)聽(tīng)方式

    最近這段時(shí)間因?yàn)槊刻煲薷木W(wǎng)站,為網(wǎng)站做特效,所以看了很多的js接觸事件,自己只會(huì)使用一小部分,有時(shí)用的時(shí)候也比較混亂,現(xiàn)在系統(tǒng)的整理了一下,本篇文章跟大家分享的是JavaScript中對(duì)事件的三種監(jiān)聽(tīng)方式
    2015-09-09
  • js 排序動(dòng)畫(huà)模擬 冒泡排序

    js 排序動(dòng)畫(huà)模擬 冒泡排序

    在js中,想讓線程sleep一下確實(shí)不是一件簡(jiǎn)單的事情,過(guò)多的使用定時(shí)器或者回調(diào)函數(shù),會(huì)讓復(fù)雜,凌亂,這時(shí),可以考慮能否使用隊(duì)列來(lái)做一些簡(jiǎn)
    2012-07-07
  • javascript筆記之匿名函數(shù)和閉包

    javascript筆記之匿名函數(shù)和閉包

    這篇文章主要為大家詳細(xì)介紹了javascript筆記之匿名函數(shù)和閉包的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-02-02
  • js實(shí)現(xiàn)圖片360度旋轉(zhuǎn)

    js實(shí)現(xiàn)圖片360度旋轉(zhuǎn)

    本文主要介紹了js實(shí)現(xiàn)圖片360度旋轉(zhuǎn)的思路與方法。具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧
    2017-01-01
  • JavaScript常見(jiàn)手寫(xiě)題超全匯總

    JavaScript常見(jiàn)手寫(xiě)題超全匯總

    作為前端開(kāi)發(fā),JS是重中之重,下面這篇文章主要給大家介紹了關(guān)于JavaScript常見(jiàn)手寫(xiě)題的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-12-12
  • 判斷JavaScript中的兩個(gè)變量是否相等的操作符

    判斷JavaScript中的兩個(gè)變量是否相等的操作符

    可能有些同學(xué)看到這個(gè)標(biāo)題就會(huì)產(chǎn)生疑惑,為什么我們要判斷JavaScript中的兩個(gè)變量是否相等,JavaScript不是已經(jīng)提供了雙等號(hào)“==”以及三等號(hào)“===”給我們使用了嗎
    2019-12-12
  • webpack將js打包后的map文件詳解

    webpack將js打包后的map文件詳解

    下面小編就為大家分享一篇webpack將js打包后的map文件詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-02-02
  • JS document內(nèi)容及樣式操作完整示例

    JS document內(nèi)容及樣式操作完整示例

    這篇文章主要介紹了JS document內(nèi)容及樣式操作,結(jié)合完整實(shí)例形式分析了JavaScript document內(nèi)容及樣式的獲取、修改、添加等相關(guān)操作技巧,需要的朋友可以參考下
    2020-01-01

最新評(píng)論

河东区| 丁青县| 平昌县| 蓝山县| 奇台县| 新安县| 永安市| 五常市| 右玉县| 锡林郭勒盟| 东明县| 溧水县| 舒兰市| 运城市| 洱源县| 淅川县| 陵川县| 泾川县| 永平县| 佳木斯市| 秦皇岛市| 绥滨县| 九龙县| 汤阴县| 江达县| 建阳市| 隆昌县| 四平市| 永顺县| 新营市| 昌乐县| 札达县| 上栗县| 麻江县| 海安县| 德庆县| 宾川县| 屯门区| 翼城县| 宿州市| 闽清县|