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

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)文章

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

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

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

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

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

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

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

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

    在js中,想讓線程sleep一下確實(shí)不是一件簡(jiǎn)單的事情,過多的使用定時(shí)器或者回調(diào)函數(shù),會(huì)讓復(fù)雜,凌亂,這時(shí),可以考慮能否使用隊(duì)列來做一些簡(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à)值,下面跟著小編一起來看下吧
    2017-01-01
  • JavaScript常見手寫題超全匯總

    JavaScript常見手寫題超全匯總

    作為前端開發(fā),JS是重中之重,下面這篇文章主要給大家介紹了關(guān)于JavaScript常見手寫題的相關(guān)資料,文中通過實(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ì)大家有所幫助。一起跟隨小編過來看看吧
    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)論

丰县| 千阳县| 漳平市| 洪江市| 扎囊县| 武穴市| 博乐市| 田阳县| 五寨县| 永泰县| 米林县| 大姚县| 蒙阴县| 咸丰县| 友谊县| 武冈市| 菏泽市| 太湖县| 咸丰县| 广昌县| 高邮市| 磐石市| 夏邑县| 桐乡市| 图们市| 建湖县| 车致| 柳林县| 龙井市| 大洼县| 广平县| 巴马| 庄河市| 红原县| 梨树县| 海原县| 大化| 临朐县| 清水县| 枝江市| 泸定县|