Latest web development tutorials

JavaScript try/catch/finally 語句

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

實例

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

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

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

<!DOCTYPE html>
<html>
<body>

<p id="demo"></p>

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

</body>
</html>

嘗試一下»

本文底部包含了更多實例


定義和用法

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 語句捕獲,並輸出自定義信息:

<!DOCTYPE html>
<html>
<body>

<p>Please input a number between 5 and 10:</p>

<input id="demo" type="text">
<button type="button" onclick="myFunction()">Test Input</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 "is Empty";
if(isNaN(x)) throw "not a number";
if(x > 10) throw "too high";
if(x < 5) throw "too low";
}
catch(err) {
message.innerHTML = "Input " + err;
}
}
</script>

</body>
</html>

嘗試一下»

實例

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

function myFunction()
var message, x;
message = document.getElementById("message");
message.innerHTML = "";
x = document.getElementById("demo").value;
try {
if(x == "") throw "Empty";
if(isNaN(x)) throw "Not a number";
if(x > 10) throw "Too high";
if(x < 5) throw "Too low";
}
catch(err) {
message.innerHTML = "Error: " + err + ".";
}
finally {
document.getElementById("demo").value = "";
}
}

嘗試一下»


相關頁面

JavaScript教程: JavaScript錯誤

JavaScript參考手冊: JavaScript throw語句


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