天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

Javascript 錯誤處理的幾種方法

1.使用window.onerror指定錯誤處理函數(shù)。
當(dāng)有錯誤的時(shí)候,onerror會被callback。 當(dāng)某個(gè)JavaScript block中有多個(gè)script錯誤時(shí),第一個(gè)錯誤觸發(fā)后(回調(diào)callback),當(dāng)前Javascript block后面的script會被自動Drop忽略掉,不被執(zhí)行。
如: 
復(fù)制代碼 代碼如下:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Test</title>
<script type="text/Javascript">
window.onerror = function(message, url, line)
{
alert("Error./nMessage:"+ message +"/nUrl:" + url + "/nLine:" + line)
return true;
}
</script>
</head>
<body>
<script type="text/Javascript">
test();
test();
test();
test();
</script>
<script type="text/Javascript">
test();
test();
test();
test();
</script>
</body>
</html>

在上面的例子中只會有每一個(gè)block中的第一個(gè)test();產(chǎn)生error。觸發(fā)window.onerror回調(diào),后面的Javascript會被忽略掉。img 也支持 onerror < img src="pic.gif" onerror = "Javascript:alert("An error occurred.");"/>。onerror 是瀏覽器支持的對象。由瀏覽器決定是否可以使用,不是DOM標(biāo)準(zhǔn)。

2.使用Javascript中的try catch throw處理異常。
Javascript支持了try catch throw,Javascript中定義的異常:
(1)EvalError: An error occurs in the eval() function.
(2)RangeError: A number value is greater then or less then the number that can be represented in Javascript(Number.MAX_VALUE and Number.MIN_VAKUE).
(3)ReferenceError: An illegal reference is used.
(4)SyntaxError: A syntax error occus inside of an eval() function call. All other syntax error are reorted by the browser and cannot be handled with a try...catch statement.
(5)TypeError. A variables type is unexpected. 6.URIError. An error ocuurs in the encodeURI() or the decodeURI() function.
如:
復(fù)制代碼 代碼如下:
<script type="text/Javascript">
function CreateError()
{
throw new Error("Created error by custom.");
}
try
{
//throw a error from a function just want to see the call stack in firefox.
CreateError();
}
catch(error)
{
var errorMsg = ("Message: " + error.message + "/n");
if(typeof(error.stack)!=undefined)
{
//FF
errorMsg += ("Line Number: " + error.lineNumber + "/n");
errorMsg += ("File Name: " + error.fileName + "/n");
errorMsg += ("Stack Trace:/n" + error.stack + "/n");
}
else
{
//IE
errorMsg += ("Description: " + error.description + "/n");
errorMsg += ("Number: " + error.number + "/n");
}
alert(errorMsg);
}
finally
{
//alert("End try catch.message from finally block.");
}
</script>


Error.message是IE和FireFox都支持的屬性。
IE支持description 和 number屬性。
FF支持fileName lineNumber 和 stack 屬性。
由于Javascript是弱類型的語言。
所以在catch部分只能catch一次,不能像C#這樣的語言可以寫多個(gè)catch,catch不同類型的exception。
但是可以用 instanceof ErrorType的方式實(shí)現(xiàn)類似的功能。
如:
復(fù)制代碼 代碼如下:
<script type="text/Javascript">
try
{ //Syntax Error
//eval("alert a");

//Custom Error
throw new Error("An error occured.");
}
catch(error)
{
if(error instanceof SyntaxError)
{
alert("Syntax Error");
}
else if(error instanceof EvalError)
{
alert("Eval Error");
}
else if(error instanceof RangeError)
{
alert("Range Error");
}
else if(error instanceof ReferenceError)
{
alert("Reference Error");
}
else if(error instanceof TypeError)
{
alert("Type Error");
}
else if(error instanceof Error)
{
alert("Custon Error");
}
alert(error.message);
}
</script>


注:瀏覽器不會拋出Error類型的exception異常,所以如果捕獲到Error類型的異常,可以確定這個(gè)異常是用戶代碼拋出的,不是瀏覽器拋出的。
Javascript的assert()
復(fù)制代碼 代碼如下:
function assert(bCondition, sErrorMsg) {
   if (!bCondition) {
      alert(sErrorMsg);
      throw new Error(sErrorMsg);
   }
}

JavaScript技術(shù)Javascript 錯誤處理的幾種方法,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 麻豆影视在线直播观看免费 | 国产高清视频免费在线观看 | 7m凹凸国产刺激在线视频 | 免费一级特黄欧美大片久久网 | 神电影院午夜dy888我不卡 | 千禧金瓶梅 快播 | 国产精品久AAAAA片 | 24小时日本在线观看片免费 | 精品视频在线观看视频免费视频 | 光溜溜的美女直播软件 | 自拍区偷拍亚洲视频 | 亚洲高清中文字幕免费 | 一二三四在线播放免费观看中文版视频 | 2019午夜75福利不卡片在线 | 女人高潮了拔出来了她什么感觉 | 九色终合九色综合88 | 泡妞高手在都市免费观看 | 伊人久久大香线蕉综合网站 | 亚洲精品色婷婷在线蜜芽 | 印度老妇女bbbxxx | 亚洲综合中文 | 国产乱码一区二区三区 | 小黄文纯肉污到你湿 | 免费一区二区三区久久 | 国产亚洲精品V在线观看一 国产亚洲精品a在线观看app | 日本护士hd | 国产91青青成人a在线 | 国产精品久久久久久人妻精品蜜桃 | 久久国产精品人妻中文 | 在线播放免费人成毛片视频 | 女人高潮被爽到呻吟在线观看 | 二级特黄绝大片免费视频大片 | 国产AV麻豆出品在线播放 | 国产精品视频人人做人人爽 | GAY空少被体育生开菊 | 99久久久久国产精品免费 | 亚洲乱码中文字幕久久 | 久久久97丨国产人妻熟女 | 国产精品99久久久久久AV色戒 | 国产真实露脸乱子伦 | 韩国g奶空姐 |