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('結束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('結束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('結束try...catch...finally語句')
            }
            
        </script>
    </body>
</html>
image.png

使用throw語句拋出異常

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

throw new Error('somestatements')

參數(shù)說明:

throw:拋出異常關鍵字

<!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('結束try...catch...finally語句')
            }
            
        </script>
    </body>
</html>
image.png

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

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容