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

JavaScript中的異常捕捉介紹

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

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


復(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語言一樣,如果異常沒有被任何catch語句所捕捉,那么該異常會最終拋給用戶:


復(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{
}


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

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

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

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

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

相關(guān)文章

  • ???????分享7?個(gè)實(shí)用?TypeScript?單行代碼

    ???????分享7?個(gè)實(shí)用?TypeScript?單行代碼

    這篇文章主要介紹了???????分享7?個(gè)實(shí)用?TypeScript?單行代碼,其中包括泛型、斷言等高級用法,需要的小伙伴可以參考一下,希望對你的學(xué)習(xí)有所幫助
    2022-05-05
  • 使用js如何實(shí)現(xiàn)全選與全不選

    使用js如何實(shí)現(xiàn)全選與全不選

    全選與全不選在管理界面還是比較實(shí)用的,下面通過checkAll與clearAll兩個(gè)函數(shù)來輕松實(shí)現(xiàn),感興趣的朋友不要錯(cuò)過
    2013-12-12
  • bootstrap datetimepicker 日期插件在火狐下出現(xiàn)一條報(bào)錯(cuò)信息的原因分析及解決辦法

    bootstrap datetimepicker 日期插件在火狐下出現(xiàn)一條報(bào)錯(cuò)信息的原因分析及解決辦法

    日期插件 bootstrap-datetimepicker 在火狐下出現(xiàn)一條報(bào)錯(cuò)信息:TypeError: (intermediate value).toString(…).split(…)[1] is undefined.什么原因?qū)е碌哪?,下面小編給大家分享解決思路,需要的朋友參考下
    2017-03-03
  • 使用js 設(shè)置url參數(shù)

    使用js 設(shè)置url參數(shù)

    本篇文章是對使用js設(shè)置url參數(shù)的實(shí)現(xiàn)代碼進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-07-07
  • 基于 Bootstrap Datetimepicker 聯(lián)動

    基于 Bootstrap Datetimepicker 聯(lián)動

    這篇文章主要介紹了基于bootstrap datetimepicker 聯(lián)動效果,需要的朋友可以參考下
    2017-08-08
  • JS設(shè)計(jì)模式之狀態(tài)模式的用法使用方法

    JS設(shè)計(jì)模式之狀態(tài)模式的用法使用方法

    JavaScript狀態(tài)模式是一種行為型設(shè)計(jì)模式,核心是對象在其內(nèi)部狀態(tài)改變時(shí)改變其行為,狀態(tài)模式將對象的行為封裝到不同的狀態(tài)類中,使得對象在不同狀態(tài)下可以選擇不同的行為,本文給大家詳細(xì)的介紹一下狀態(tài)設(shè)計(jì)模式在Js中的使用,需要的朋友可以參考下
    2023-08-08
  • JavaScript實(shí)現(xiàn)自定義拖拽排序列表

    JavaScript實(shí)現(xiàn)自定義拖拽排序列表

    在Web開發(fā)中,拖拽排序是一個(gè)常見的需求,它允許用戶通過拖拽的方式重新排列列表項(xiàng)的順序,本文將介紹如何使用原生JavaScript實(shí)現(xiàn)這一功能,需要的可以了解下
    2024-01-01
  • Javascript控制input輸入時(shí)間格式的方法

    Javascript控制input輸入時(shí)間格式的方法

    這篇文章主要介紹了Javascript控制input輸入時(shí)間格式的方法,涉及鼠標(biāo)事件及正則表達(dá)式的靈活應(yīng)用,需要的朋友可以參考下
    2015-01-01
  • TypeScript高級用法的知識點(diǎn)匯總

    TypeScript高級用法的知識點(diǎn)匯總

    這篇文章主要給大家介紹了關(guān)于TypeScript高級用法的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用TypeScript具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • JS實(shí)現(xiàn)普通輪播圖特效

    JS實(shí)現(xiàn)普通輪播圖特效

    這篇文章主要為大家詳細(xì)介紹了JS實(shí)現(xiàn)普通輪播圖特效,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-01-01

最新評論

进贤县| 彩票| 靖边县| 黑龙江省| 惠东县| 潮州市| 新晃| 昌黎县| 阿瓦提县| 乌什县| 玉树县| 德江县| 龙山县| 禹城市| 酉阳| 宾阳县| 宁海县| 明光市| 南康市| 义乌市| 石景山区| 广宁县| 泰兴市| 弥勒县| 金门县| 麟游县| 鹤岗市| 九龙坡区| 虹口区| 马龙县| 蒙阴县| 兴文县| 丰镇市| 滁州市| 平江县| 手机| 龙游县| 高密市| 玛纳斯县| 南皮县| 托克托县|