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

理解javascript中try...catch...finally

 更新時間:2015年12月25日 09:28:36   作者:微宇宙  
這篇文章主要幫助大家理解javascript中try...catch...finally,從淺入深,一步步掌握javascript中try...catch...finally的使用方法,感興趣的小伙伴們可以參考一下

本文為大家分析了javascript中try...catch...finally的使用方法,分享給大家供大家參考,具體內(nèi)容如下

稍微復雜一點點,就要用到判斷語句,if else進行條件判斷,話說if條件else否則,這樣的判斷對于寫程序代碼的碼儂已經(jīng)是非常熟悉不過了。

如果你覺得這個也很簡單,可能會用到混合if else條件判斷語句加上try catch 來處理語句,雖然用try catch能處理任何的對象,通過throw扔一條有錯誤的語句,接著catch拋出該對象或者該對象的錯誤,今天我們只說try...catch,下面的例子分別拋出數(shù)組、時間、原型函數(shù)、數(shù)字類型等。

function trycatch () {
  var array = [234],
    newdate = new Date(),
    fun = function(){},
    is = 12.22,
    call;
  try{
    throw array + '\n' + newdate.toLocaleString() + ' \n' + fun.prototype.constructor + 
    '\n' + (typeof is == 'number') +' \n' + call ; //小心local后面還有一個'e'
  }
  catch(e){
    console.log(e);
  }
  finally{
    console.log('err finally');
  }
}
trycatch () 

// 輸出:

// 234

// 2015/10/12 下午10:07:03 

// function (){}

// true 

// undefined

更準確的說,try內(nèi)放一條可能產(chǎn)生錯誤的語句。當try語句開始執(zhí)行并拋出錯誤時,catch才執(zhí)行內(nèi)部的語句和對應的try內(nèi)的錯誤信息message。何時執(zhí)行finally語句,只有當try語句和catch語句執(zhí)行之后,才執(zhí)行finally語句,不論try拋出異?;蛘遚atch捕獲都會執(zhí)行finally語句。

function trycatch () {
  try{
    throw new Error('koringz');
  }
  catch(e){
    console.log(e.message);
  }
  finally{
    console.log('err finally');
  }
}
trycatch ()
// 輸出:
// koringz
// err finally

通過try扔出一條錯誤的語句,我們看到在catch捕獲到一條錯誤的的信息// koringz,但是同樣的finally也輸出了// err finally。雖然我們了解try catch工作流的處理方式,但是并不了解finally塊的代碼處理程序,按照以往我們對finally語句一貫的思維方式,就是finally輸出不受try和catch的限制和約束。以下是finally的幾個輸出演示代碼:

function trycatch () {
  try{
    throw new Error('koringz');
  }
  finally{
    console.log('err finally');
    return console.log('new finally')
  }
}
trycatch ()
// err finally
// new finally

如上所示,try扔一條錯誤的語句,finally輸出的結(jié)果是: // err finally  // new finally。

function trycatch () {
  try{
    throw new Error('koringz');
  }
  catch(e){
    console.log('err finally');
    return console.log('new finally')
  }
}
trycatch ()
// err finally
// new finally

如上所示,try扔一條錯誤的語句,catch捕獲到錯誤輸出結(jié)果同上finally。 // err finally  // new finally。

當我修改try的語句:

function trycatch () {
  try{
    // 
  }
  catch(e){
    console.log('err finally');
    return console.log('new finally')
  }
}
trycatch ()
// 空(viod)
// 空(viod)

結(jié)果就輸出都為空。// 空(viod)。因為try沒有扔出錯誤,所以catch沒有捕獲到異常,故輸出結(jié)果就為空。

那么我們再看看下面這個案例,通過下面的例子,可能會讓你更加地了解try catch語句的異常處理。

try{
  try{
    throw new Error('open');
  }
  catch(e){
    console.info(e.message);
    throw e
  }
  finally{
    console.log('finally');
  }
}
catch(e){
  console.log('op',e.message);
}
// open
// finally
// op open

當我們在try可能引發(fā)錯誤的代碼塊內(nèi)嵌套try catch,通過嵌套的代碼塊try內(nèi)扔一條可能出現(xiàn)錯誤的語句 throw new Error('open');,緊接著嵌套的try將錯誤傳遞給嵌套的catch處理,最終通過嵌套的finally運行過后,我們看到最后一條結(jié)果// op open,其實嵌套的catch捕獲的錯誤信息扔給最外層catch捕獲的。// op open

也就是說:任何給定的異常只會被離它最近的封閉catch塊捕獲一次。

當然,在“內(nèi)部”塊拋出的任何新異常(因為catch塊里的代碼也可以拋出異常),都將會被“外部”塊所捕獲。

以上就是本文的全部內(nèi)容,希望對大家學習javascript程序設計有所幫助。

相關(guān)文章

  • javascript中一些奇葩的日期換算方法總結(jié)

    javascript中一些奇葩的日期換算方法總結(jié)

    這篇文章主要給大家總結(jié)介紹了關(guān)于javascript中的一些奇葩的日期換算方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-11-11
  • 深入理解 JavaScript 中的 JSON

    深入理解 JavaScript 中的 JSON

    我們先來看一個JS中常見的JS對象序列化成JSON字符串的問題,請問,以下JS對象通過JSON.stringify后的字符串是怎樣的
    2017-04-04
  • js實現(xiàn)股票實時刷新數(shù)據(jù)案例

    js實現(xiàn)股票實時刷新數(shù)據(jù)案例

    下面小編就為大家?guī)硪黄猨s實現(xiàn)股票實時刷新數(shù)據(jù)案例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • Node調(diào)試工具JSHint的安裝及配置教程

    Node調(diào)試工具JSHint的安裝及配置教程

    Node的優(yōu)勢我就不再亂吹捧了,它讓javascript統(tǒng)一web的前后臺成為了可能。但是對于新手來說,server端的JS代碼可能不像client端的代碼那么好調(diào)試,直觀。client端JS代碼的調(diào)試基本上經(jīng)歷了一個從“肉眼--alert()--firebug(或者其它的developer tools)”的一個過程。而對于server端的調(diào)試,可能新手仍然停留在使用“肉眼--console()”的階段。其實,Node經(jīng)過了這么多年(雖然才短短幾年)的發(fā)展,也有了很多不錯的第三方的調(diào)試工具。包括Node內(nèi)建的調(diào)試工具debugger、node-inspector等。
    2014-05-05
  • IE8 中使用加速器(Activities)

    IE8 中使用加速器(Activities)

    在IE8中使用Activities感覺就是讓自己使用IE更方便了,懶人就是得懶得底。
    2010-05-05
  • JS入門必備之八種數(shù)據(jù)類型

    JS入門必備之八種數(shù)據(jù)類型

    Javascript腳本語言同其他語言一樣,有它自身的基本數(shù)據(jù)類型,表達式和算術(shù)運算符及程序的基本程序框架,這篇文章主要給大家介紹了關(guān)于JS中八種數(shù)據(jù)類型的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-01-01
  • 最新評論

    林芝县| 博乐市| 青河县| 古交市| 曲麻莱县| 惠东县| 十堰市| 阜宁县| 盐山县| 化隆| 惠水县| 海原县| 彰武县| 乌恰县| 瑞安市| 斗六市| 绥中县| 邵东县| 仁寿县| 贵阳市| 永年县| 宁安市| 田阳县| 双桥区| 蒙山县| 阿巴嘎旗| 大名县| 台东县| 昆明市| 民县| 泰来县| 曲沃县| 芜湖市| 南阳市| 仙桃市| 化德县| 湟源县| 泽库县| 宜州市| 和田市| 桐梓县|