當我們在網上沖浪時,總會看到帶有 runtime 錯誤的 Javascript 警告框,同時會詢問我們“是否進行 debug?”。像這樣的錯誤信息或許對開發人員有用,對用戶則未必。當錯誤發生時,他們往往會選擇離開這個站點。
本節向你講解如何捕獲和處理 Javascript 的錯誤消息,這樣就可以為受眾提供更多的便利。
有兩種在網頁中捕獲錯誤的方法:
try...catch 可以測試代碼中的錯誤。try 部分包含需要運行的代碼,而 catch 部分包含錯誤發生時運行的代碼。
//在此運行代碼catch(err) //在此處理錯誤}
注意:try...catch 使用小寫字母。大寫字母會出錯。
下面的例子原本用在用戶點擊按鈕時顯示 Welcome guest! 這個消息。不過 message() 函數中的 alert() 被誤寫為 adddlert()。這時錯誤發生了:
html head script type= text/javascript function message()adddlert( Welcome guest! ) /script /head body input type= button value= View message quot;message() / /body /html
我們可以添加 try...catch 語句,這樣當錯誤發生時可以采取更適當的措施。
下面的例子用 try...catch 語句重新修改了腳本。由于誤寫了 alert(),所以錯誤發生了。不過這一次,catch 部分捕獲到了錯誤,并用一段準備好的代碼來處理這個錯誤。這段代碼會顯示一個自定義的出錯信息來告知用戶所發生的事情。
html head script type= text/javascript var txt= function message() adddlert( Welcome guest! )catch(err) txt= 此頁面存在一個錯誤。/n/n txt+= 錯誤描述: + err.description + /n/n txt+= 點擊OK繼續。/n/n alert(txt) /script /head body input type= button value= View message quot;message() / /body /html
TIY
下一個例子會顯示一個確認框,讓用戶來選擇在發生錯誤時點擊確定按鈕來繼續瀏覽網頁,還是點擊取消按鈕來回到首頁。如果 confirm 方法的返回值為 false,代碼會把用戶重定向到其他的頁面。如果 confirm 方法的返回值為 true,那么代碼什么也不會做。
html head script type= text/javascript var txt= function message() adddlert( Welcome guest! )catch(err) txt= There was an error on this page./n/n txt+= Click OK to continue viewing this page,/n txt+= or Cancel to return to the home page./n/n if(!confirm(txt)) document.location.href= http://www.w3school.com.cn/ /script /head body input type= button value= View message quot;message() / /body /html
TIY
我們馬上會講解 onerror 事件。但首先您需要學習如何使用 throw 語句來創建異常。throw 語句可以與 try...catch 語句一起使用。
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。
新聞熱點
疑難解答