您好,登錄后才能下訂單哦!
在JavaScript中怎么處理異常及處理的try方法?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
下面我們來看看try...catch...finally語句塊+throw是如何來進行異常處理的:
JavaScript可以通過try ... catch ... finally的構造以及throw運算符來處理異常。
這可以捕獲程序生成的和運行時發生的異常,但是你無法捕獲 JavaScript的語法錯誤。
一、try...catch...finally
下面我們來看看try ... catch ... finally塊語法:
<script type="text/javascript"> <!-- try { // 運行代碼 [break;] } catch ( e ) { // 如果發生異常,則運行代碼 [break;] } [ finally { // 無論如何,始終執行的代碼 // 異常發生 }] //--> </script>
try塊必須緊跟著一個catch塊或一個finally塊(或者兩者之一)。當在try塊中發生異常時,異常被放置在‘e’中,并且執行catch塊。可選的finally塊在try/catch之后無條件地執行。
例子:
調用一個不存在的函數的例子,而這個函數又引發了異常。讓我們看看如果沒有try... catch的表現會如何
function myFunc() { var a = 100; alert("變量a的值為 : " + a); }
<p>點擊下面查看結果:</p> <form> <input type="button" value="點擊我" onclick="myFunc();" /> </form>
運行:
現在讓我們嘗試使用try ... catch捕獲此異常并顯示用戶友好的消息。如果用戶要隱藏此錯誤,也可以禁止顯示此消息。
function myFunc(){ var a = 100; ry { alert("變量a的值為 : " + a ); } catch ( e ) { alert("錯誤: " + e.description ); } }
運行:
你可以使用finally塊,它將始終在try / catch之后無條件執行。這是一個例子:
function myFunc() { var a = 100; try { alert("變量a的值為 : " + a); } catch(e) { alert("錯誤: " + e.description); } finally { alert("Finally塊將永遠執行!"); } }
運行:
二、throw
你可以使用throw語句來提高內置異常或自定義異常,稍后可以捕獲這些異常,并且可以采取適當的行動。
舉一個例:如何使用throw語句
function myFunc() { var a = 100; var b = 0; try { if(b == 0) { throw("除以零時出現誤差。"); } else { var c = a / b; } } catch(e) { alert("錯誤: " + e); } }
運行:
你可以使用字符串,整數,布爾值或對象在一個函數中引發異常,然后在與上面相同的函數中捕獲該異常,或者使用try ... catch塊在另一個函數中捕獲該異常。
關于在JavaScript中怎么處理異常及處理的try方法問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。