JavaScript中的異常處理語句(Try...catch...finally)使用方法介紹

從Javascript3.0中添加了異常處理機制,可以采用從java語言中移植過來的模型使用try--catch--finally語句進行異常的處理檀蹋。

其中包括(try...catch...finally語句)菜循、Error對象、使用throw語句拋出異常等

使用try...catch...finally語句拋出異常

正確代碼:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>try_catch</title>
    </head>
    <body>
        <script>
            var str = 'i like Javascript'
            try{
                //在頁面上輸出字符串中的下標為5的字符。
                document.write(str.charAt(5))  //執(zhí)行成功耻煤,在頁面輸出字符串第5位的內(nèi)容晾匠,然后執(zhí)行finally中的語句
            }catch(exception){
                //當有錯誤發(fā)生時,彈窗輸出下列語句
                alert('運行時有異常發(fā)生')
                //TODO handle the exception
            }finally{
                alert('結(jié)束try...catch...finally語句')
            }
            
        </script>
    </body>
</html>

拋出異常代碼:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>try_catch</title>
    </head>
    <body>
        <script>
            var str = 'i like Javascript'
            try{
                //在頁面上輸出字符串中的下標為5的字符茶袒。
                document.write(str.charat(5))  //字符串的函數(shù)名書寫錯誤,發(fā)生異常凉馆,執(zhí)行catch中的語句
            }catch(exception){
                //當有錯誤發(fā)生時,彈窗輸出下列語句
                alert('運行時有異常發(fā)生')
                //TODO handle the exception
            }finally{
                alert('結(jié)束try...catch...finally語句')
            }
            
        </script>
    </body>
</html>
image.png

分析可知薪寓,當try語句塊中包含的語句出現(xiàn)錯誤的時候,跳出try語句執(zhí)行catch語句塊中的內(nèi)容澜共,然后如果存在finally語句塊向叉,則最后執(zhí)行finally語句塊中的內(nèi)容。

Error對象

try...catch...finally語句中的catch通常捕捉到的對象為Error對象嗦董,當運行JavaScript代碼時母谎,如果產(chǎn)生了錯誤或者異常,JavaScript就會生成一個Error對象的實例來描述錯誤京革。該實例包含了一些特定的錯誤信息奇唤。

Error對象有以下兩個屬性。

name:表示異常類型的字符串

message:實際的錯誤信息

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>try_catch</title>
    </head>
    <body>
        <script>
            var str = 'i like Javascript'
            try{
                //在頁面上輸出字符串中的下標為5的字符匹摇。
                document.write(str.charat(5))  //字符串的函數(shù)名書寫錯誤咬扇,發(fā)生異常,執(zhí)行catch中的語句
//              document.write(str.charAt(5))  //執(zhí)行成功廊勃,在頁面輸出字符串第5位的內(nèi)容懈贺,然后執(zhí)行finally中的語句
            }catch(exception){
                //當有錯誤發(fā)生時,彈窗輸出下列語句
                alert('實際的錯誤信息為:'+exception.message + '\n錯誤類型為'+exception.name)
                //TODO handle the exception
            }finally{
                alert('結(jié)束try...catch...finally語句')
            }
            
        </script>
    </body>
</html>
image.png

使用throw語句拋出異常

有些JavaScript代碼并沒有語法上的錯誤,但是又邏輯錯誤供搀,對于這種錯誤隅居,JavaScript不會拋出異常,這時候需要我們自己定義一個Error對象的實例葛虐,并使用throw語句來拋出異常胎源。在程序中我們可以通過使用throw語句有目的的拋出異常,其語法格式如下屿脐。

throw new Error('somestatements')

參數(shù)說明:

throw:拋出異常關(guān)鍵字

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>try_catch</title>
    </head>
    <body>
        <script>
            var str = 'i like Javascript'
            try{
                var num = 1/0;
                if (num == 'Infinity'){
                    throw new Error('除數(shù)不可以為0')
                }
            }catch(exception){
                //當有錯誤發(fā)生時,彈窗輸出下列語句
                alert('實際的錯誤信息為:'+exception.message + '\n錯誤類型為'+exception.name)
                //TODO handle the exception
            }finally{
                alert('結(jié)束try...catch...finally語句')
            }
            
        </script>
    </body>
</html>
image.png

原文鏈接:https://blog.csdn.net/qq_32670879/article/details/82530164

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末涕蚤,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子的诵,更是在濱河造成了極大的恐慌万栅,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件西疤,死亡現(xiàn)場離奇詭異烦粒,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進店門扰她,熙熙樓的掌柜王于貴愁眉苦臉地迎上來兽掰,“玉大人,你說我怎么就攤上這事徒役∧蹙。” “怎么了?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵忧勿,是天一觀的道長杉女。 經(jīng)常有香客問我,道長鸳吸,這世上最難降的妖魔是什么熏挎? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮层释,結(jié)果婚禮上婆瓜,老公的妹妹穿的比我還像新娘快集。我一直安慰自己贡羔,他們只是感情好,可當我...
    茶點故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布个初。 她就那樣靜靜地躺著乖寒,像睡著了一般。 火紅的嫁衣襯著肌膚如雪院溺。 梳的紋絲不亂的頭發(fā)上楣嘁,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天,我揣著相機與錄音珍逸,去河邊找鬼逐虚。 笑死,一個胖子當著我的面吹牛谆膳,可吹牛的內(nèi)容都是我干的叭爱。 我是一名探鬼主播,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼漱病,長吁一口氣:“原來是場噩夢啊……” “哼买雾!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起杨帽,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤漓穿,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后注盈,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體晃危,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年老客,在試婚紗的時候發(fā)現(xiàn)自己被綠了僚饭。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片纠俭。...
    茶點故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖浪慌,靈堂內(nèi)的尸體忽然破棺而出冤荆,到底是詐尸還是另有隱情,我是刑警寧澤权纤,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布钓简,位于F島的核電站,受9級特大地震影響汹想,放射性物質(zhì)發(fā)生泄漏外邓。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一古掏、第九天 我趴在偏房一處隱蔽的房頂上張望损话。 院中可真熱鬧,春花似錦槽唾、人聲如沸丧枪。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽拧烦。三九已至,卻和暖如春钝计,著一層夾襖步出監(jiān)牢的瞬間恋博,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工私恬, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留债沮,地道東北人。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓本鸣,卻偏偏與公主長得像疫衩,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子永高,可洞房花燭夜當晚...
    茶點故事閱讀 44,979評論 2 355

推薦閱讀更多精彩內(nèi)容