亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

JavaScript中的異常捕捉介紹

 更新時(shí)間:2014年12月31日 08:49:08   投稿:junjie  
這篇文章主要介紹了JavaScript中的異常捕捉介紹,本文講解了throw語(yǔ)句拋出異常,try/catch/finally語(yǔ)句捕捉異常,需要的朋友可以參考下

與Java語(yǔ)言相同,JavaScript可以通過(guò)throw語(yǔ)句來(lái)拋出異常。與Java語(yǔ)言不同的是,JavaScript中可以通過(guò)throw語(yǔ)句拋出所有類型的值,而不僅止于拋出錯(cuò)誤對(duì)象。


復(fù)制代碼 代碼如下:

//Throw an Error object.
try{
  throw new Error("Message in Error Object");
}catch(e){
    console.log(e);//Error: Message in Error Object
}

try{
  throw "Raw Message";
}catch(message){
  console.log(message);//Raw Message
  console.log(typeof message);//string
}

try{
  throw 42;
}catch(code){
  console.log(code);//42
  console.log(typeof code);//number
}


與Java語(yǔ)言一樣,如果異常沒(méi)有被任何catch語(yǔ)句所捕捉,那么該異常會(huì)最終拋給用戶:


復(fù)制代碼 代碼如下:

try{
  //throw new Error("test error");//Error will be thrown. Error: test error
}finally{
}

try{
  throw 42;//Error will be thrown. Error: 42
}finally{
}


對(duì)于拋出異常的捕捉,JavaScript使用的也是try/catch/finally語(yǔ)句,其使用規(guī)則為:try是必需的,catch和finally均為可選語(yǔ)句,但catch和finally中必須至少出現(xiàn)一個(gè)。

在catch語(yǔ)句中,可以定義一個(gè)參數(shù)e(或者其它任何合法的變量名),用于存儲(chǔ)拋出的異常值。在catch語(yǔ)句內(nèi)部,這個(gè)參數(shù)可以作為局部變量而使用。與JavaScript中其它的變量使用情況不同的是,catch語(yǔ)句中的參數(shù)變量?jī)H在catch語(yǔ)句內(nèi)部有效(該變量的作用域局限在catch語(yǔ)句中)。

對(duì)于finally語(yǔ)句,無(wú)論try中是否有異常拋出,finally中的代碼均會(huì)被執(zhí)行。詳細(xì)情況包括:

1.try中無(wú)異常發(fā)生,當(dāng)try語(yǔ)句執(zhí)行完畢后,finnally中的代碼將被執(zhí)行。
2.try中無(wú)異常發(fā)生,但由于執(zhí)行了break、continue或return語(yǔ)句而導(dǎo)致退出try代碼時(shí),finally中的代碼將被執(zhí)行。
3.try中發(fā)生異常,異常由catch語(yǔ)句處理完成后,finally中的代碼被執(zhí)行。
4.try中發(fā)生異常,但因沒(méi)有catch語(yǔ)句導(dǎo)致該異常需要繼續(xù)向上拋出時(shí),finally中的代碼將被執(zhí)行。值得注意的是,在catch語(yǔ)句缺失的情況下,JavaScript將先執(zhí)行finally中的代碼,然后才向上繼續(xù)拋出異常。

在finally代碼中,如果出現(xiàn)break、continue或return語(yǔ)句,那么JavaScript將直接執(zhí)行這些語(yǔ)句,而置try代碼中可能存在的break、continue或return語(yǔ)句于不顧;即使catch語(yǔ)句缺失導(dǎo)致有異常需要上報(bào),JS也會(huì)丟棄這個(gè)異常上報(bào)信息,繼續(xù)執(zhí)行finally代碼中的break、continue或return語(yǔ)句。類似的,如果finally代碼中也拋出了異常,那么JavaScript將丟棄所有try代碼中的break、continue或return語(yǔ)句,同時(shí)也丟棄可能存在的異常上報(bào)行為,只拋出finally代碼中的異常。

相關(guān)文章

最新評(píng)論