1. 程式人生 > >JavaScript中的Try...Catch 語句

JavaScript中的Try...Catch 語句

try...catch 的作用是測試程式碼中的錯誤。
有兩種在網頁中捕獲錯誤的方法:
(1)使用 try...catch 語句。(在 IE5+、Mozilla 1.0、和 Netscape 6 中可用) 
(2)使用 onerror 事件。這是用於捕獲錯誤的老式方法。(Netscape 3 以後的版本可用)
Try...Catch 語句: 可以測試程式碼中的錯誤。try 部分包含需要執行的程式碼,而 catch 部分包含錯誤發生時執行的程式碼。
語法:

複製程式碼 try
{
   
//在此執行程式碼}
catch(err)
{
   
//在此處理錯誤} 複製程式碼

注意:try...catch 使用小寫字母。大寫字母會出錯。
舉例如下:

複製程式碼 <html><head><script type="text/javascript">var txt="";
function message()
{
try
  {
  alerty(
"歡迎您!"//誤寫成alerty,trycatch捕捉錯誤  }
catch(err)
  {
  txt
="此頁面存在一個錯誤。\n\n";
  txt
+="錯誤描述: "+ err.description +"\n\n";
  txt
+="點選OK繼續。\n\n";
  alert(txt);
  }
}
</script></head><body
><input type="button" value="點選我" onclick="message()"/></body></html> 複製程式碼

throw 宣告的作用是建立 exception(異常或錯誤)。
這個宣告與try...catch 宣告配合使用,以達到控制程式流併產生精確錯誤訊息的目的。
語法:throw(exception)
exception 可以是字串、整數、邏輯值或者物件。
舉例如下:如果 x 的值大於 10 或者小於 0,錯誤就會被丟擲 (throw)。這個錯誤被 catch 的引數捕獲後,就會顯示出自定義的出錯資訊。

複製程式碼 <html>
<body><script type="text/javascript">var x=prompt("Enter a number between 0 and 10:","")
try

if(x>10
throw"Err1"elseif(x<0)
throw"Err2"

catch(er)
{
if(er=="Err1"
alert(
"Error! The value is too high")
if(er =="Err2"
alert(
"Error! The value is too low"
}
</script></body></html> 複製程式碼 onerror 事件:
如果需要利用 onerror 事件,就必須建立一個處理錯誤的函式。你可以把這個函式叫作 onerror 事件處理器 (onerror event handler)。這個事件處理器使用三個引數來呼叫:msg(錯誤訊息)、url(發生錯誤的頁面的 url)、line(發生錯誤的程式碼行)
語法:
onerror=handleErrfunction handleErr(msg,url,l)
{
//Handle the error here
return true or false
}
瀏覽器是否顯示標準的錯誤訊息,取決於 onerror 的返回值。如果返回值為 false,則在控制檯 (JavaScript console) 中顯示錯誤訊息。反之則不會。
舉例如下:
複製程式碼 <html><head><script type="text/javascript">
onerror
=handleErr
var txt=""function handleErr(msg,url,l)
{
txt
="There was an error on this page.\n\n"
txt
+="Error: "+ msg +"\n"
txt
+="URL: "+ url +"\n"
txt
+="Line: "+ l +"\n\n"
txt
+="Click OK to continue.\n\n"
alert(txt)
returntrue
}
function message()
{
adddlert(
"Welcome guest!")
}
</script></head><body><input type="button" value="點選我" onclick="message()"/></body></html> 複製程式碼