JavaScript try/catch/finally 語句

JavaScript 語句參考手冊 JavaScript 語句參考手冊

實例

在下面的例子中,我們故意在 try 塊的代碼中寫了一個錯字。

該實例本應該提醒"歡迎光臨!",但彈出的是拼寫錯誤資訊。

catch 塊會捕捉到 try 塊中的錯誤,並執行代碼來處理它:

try { adddlert("歡迎光臨!"); } catch(err) { document.getElementById("demo").innerHTML = err.message; }

本文底部包含了更多實例


定義和用法

try/catch/finally 語句用於處理代碼中可能出現的錯誤資訊。

錯誤可能是語法錯誤,通常是程式員造成的編碼錯誤或錯別字。也 可能是拼寫錯誤或語言中缺少的功能(可能由於流覽器差異)。

try語句允許我們定義在執行時進行錯誤測試的代碼塊。

catch 語句允許我們定義當 try 代碼塊發生錯誤時,所執行的代碼塊。

finally 語句在 try 和 catch 之後無論有無異常都會執行。

注意: catch 和 finally 語句都是可選的,但你在使用 try 語句時必須至少使用一個。

提示: 當錯誤發生時, JavaScript 會停止執行,並生成一個錯誤資訊。使用 throw 語句 來創建自定義消息(拋出異常)。如果你將 throwtrycatch一起使用,就可以控制程式輸出的錯誤資訊。

更多關於 JavaScript 錯誤,請參閱我們的 JavaScript 錯誤 教學。


流覽器支持

語句
try/catch/finally Yes Yes Yes Yes Yes


語法

try {
    tryCode - 嘗試執行代碼塊
}
catch(err) {
    catchCode - 捕獲錯誤的代碼塊
}
finally {
    finallyCode - 無論 try / catch 結果如何都會執行的代碼塊
}

參數值

參數 描述
tryCode 必須。檢查是否有錯誤的代碼塊。
err 必須(如果使用 catch)。指定局部變數應用的錯誤。該變數可以引用 Error 對象 (包含發生的錯誤資訊,如 "'addlert' 沒有定義")。如果異常通過 throw 語句創建 , 該 變數引用了為在throw語句中指定的對象 (查看 "更多實例")
catchCode 可選。如果 try 語句發生錯誤執行的代碼塊。如果 try 語句沒發生錯誤該代碼不會執行。
finallyCode 可選。無論 try / catch 的結果如何都會執行。

技術細節

JavaScript 版本: 1.4


實例

更多實例

實例

該實例檢測輸入的值是否錯誤,如果錯誤則拋出異常。

異常通過 catch 語句捕獲,並輸出自定義資訊:

<p>請輸入 5 和 10 之間的一個數:</p> <input id="demo" type="text"> <button type="button" onclick="myFunction()">檢測輸入</button> <p id="message"></p> <script>
function myFunction() { var message, x; message = document.getElementById("message"); message.innerHTML = ""; x = document.getElementById("demo").value; try { if(x == "") throw "為空"; if(isNaN(x)) throw "不是一個數字"; if(x > 10) throw "太大了"; if(x < 5) throw "太小了"; } catch(err) { message.innerHTML = "輸入的值 " + err; } }
</script>


實例

finally 語句無論 try 和 catch 執行結果如何都會執行:

function myFunction() { var message, x; message = document.getElementById("message"); message.innerHTML = ""; x = document.getElementById("demo").value; try { if(x == "") throw "為空"; if(isNaN(x)) throw "不是一個數字"; if(x > 10) throw "太大"; if(x < 5) throw "太小"; } catch(err) { message.innerHTML = "輸入的值 " + err; } finally { document.getElementById("demo").value = ""; } }



相關頁面

JavaScript 教學: JavaScript 錯誤

JavaScript 參考手冊: JavaScript throw 語句


JavaScript 語句參考手冊 JavaScript 語句參考手冊