JavaScript中的異常處理(可用於驗證輸入等)
阿新 • • 發佈:2019-01-03
首先是三個語句的含義:
try 語句測試程式碼塊的錯誤。
catch 語句處理錯誤。
throw 語句建立自定義錯誤。
JavaScript 丟擲錯誤
當錯誤發生時,JavaScript 引擎通常會停止,並生成一個錯誤訊息。
描述這種情況的技術術語是:JavaScript 將丟擲一個錯誤。
JavaScript 測試和捕捉
try 語句允許我們定義在執行時進行錯誤測試的程式碼塊。
catch 語句允許我們定義當 try 程式碼塊發生錯誤時,所執行的程式碼塊。
JavaScript 語句 try 和 catch
語法
try
{
//在這裡執行程式碼
}
catch(err)
{
//在這裡處理錯誤
}
先看一個例子吧,我們在try語句塊中打錯字
例子1
<!DOCTYPE html> <html> <head> <script> var txt=""; function message() { try { adddlert("Welcome guest!"); } catch(err) { alert(err.message); } } </script> </head> <body> <input type="button" value="View message" onclick="message()"> </body> </html>
這裡只用了try和catch,然後我們alert出系統自己報的錯誤資訊
Throw 語句
throw 語句允許我們建立自定義錯誤。
正確的技術術語是:建立或丟擲異常(exception)。
如果把 throw 與 try 和 catch 一起使用,那麼您能夠控制程式流,並生成自定義的錯誤訊息。
語法
throw exception
例子2
本例檢測輸入變數的值。如果值是錯誤的,會丟擲一個異常(錯誤)。catch 會捕捉到這個錯誤,並顯示一段自定義的錯誤訊息:
<!DOCTYPE html> <html> <body> <script> function myFunction() { try { var x=document.getElementById("demo").value; if(x=="") throw "值為空"; if(isNaN(x)) throw "不是數字"; if(x>10) throw "太大"; if(x<5) throw "太小"; else throw "無"; } catch(err) { var y=document.getElementById("mess"); y.innerHTML="錯誤:" + err + "。"; } } </script> <p>請輸入 5 到 10 之間的數字:</p> <input id="demo" type="text"> <button type="button" onclick="myFunction()">測試輸入值</button> <p id="mess"></p> </body> </html>
結果:
注意,如果 getElementById 函數出錯,也會丟擲一個錯誤,因為該語句也在try語句塊中。
例如拼錯,