麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 語言 > JavaScript > 正文

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

2024-05-06 16:26:50
字體:
供稿:網(wǎng)友
這篇文章主要幫助大家理解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拋出異常或者catch捕獲都會執(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程序設計有所幫助。



注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 欧美一级黄色免费 | 天天色综合2 | 一区二区三区视频播放 | 成人在线观看一区二区三区 | 亚州视频在线 | 91精品国产乱码久久桃 | 日本黄色免费观看视频 | 双性帝王调教跪撅打屁股 | 亚洲人成中文字幕在线观看 | 乱淫67194 | 日本免费aaa观看 | 99re热视频这里只精品 | 韩国一级免费视频 | 成人一级黄色 | 毛片免费在线视频 | 国产精品一区二区羞羞答答 | 美女视频黄a视频免费全过程 | 91成人在线免费 | 在线观看免费视频麻豆 | 成人羞羞视频在线观看免费 | 欧美a级在线免费观看 | 亚洲欧美国产高清 | 婷婷一区二区三区 | 成人福利在线免费观看 | 狠狠干91| 一级美女大片 | 久久久婷婷 | 在线区 | av在线1 | 国产精品欧美久久久久一区二区 | 久久精品国产99国产精品亚洲 | 91av在线免费播放 | 成人免费毛片一 | 国产成人精品一区二区视频免费 | 亚洲91精品| 日韩电影一区二区 | av免费在线网站 | 久久精品超碰 | 国产精品久久久久一区二区 | 日本在线不卡免费 | 午夜色片 |