javascript捕獲異常用“try catch”語句,語法“try {// 可能會(huì)發(fā)生異常的代碼} catch(error) {// 發(fā)生異常時(shí)要執(zhí)行的操作}”;try語句塊中捕獲錯(cuò)誤代碼,catch語句塊中定義處理異常的方法。
本教程操作環(huán)境:windows7系統(tǒng)、javascript1.8.5版、Dell G3電腦。
JS 異常處理
異常處理的目的是捕捉產(chǎn)生異常的代碼,使整個(gè)程序不會(huì)因?yàn)楫惓6K止運(yùn)行。在 JavaScript 中,您可以使用 try catch
語句來捕獲異常,并做出相應(yīng)處理,語法格式如下:
try { // 可能會(huì)發(fā)生異常的代碼 } catch(error) { // 發(fā)生異常時(shí)要執(zhí)行的操作 }
我們可以將任何可能發(fā)生異常的代碼放到 try 語句塊中,并在 catch 語句塊中定義處理異常的方法。如果 try 語句塊中的代碼發(fā)生錯(cuò)誤,代碼會(huì)立即從 try 語句塊跳轉(zhuǎn)到 catch 語句塊中,如果 try 語句塊中代碼沒有發(fā)生錯(cuò)誤,就會(huì)忽略 catch 語句塊中的代碼。
<script> try { var title = "JavaScript"; document.write(title); // 調(diào)用一個(gè)未定義的變量 document.write(str); // 若發(fā)生錯(cuò)誤,則不會(huì)執(zhí)行以下行 alert("所有語句都已成功執(zhí)行。"); } catch(error) { // 處理錯(cuò)誤 alert("錯(cuò)誤信息: " + error.message); } // 繼續(xù)執(zhí)行下面的代碼 document.write("<p>Hello World!</p>"); </script>
運(yùn)行結(jié)果如下圖所示:
當(dāng) try 語句塊中的代碼出現(xiàn)異常時(shí),會(huì)創(chuàng)建并拋出一個(gè) Error 對(duì)象(例如上面代碼內(nèi)catch(error)中的 error),對(duì)象中包含兩個(gè)屬性,如下所示:
-
name:錯(cuò)誤的類型;
-
message:對(duì)錯(cuò)誤的描述信息。
try catch finally
語句
在 try catch 語句的后面,還可以添加一個(gè) finally 語句塊,無論 try 語句塊中的代碼是否發(fā)生錯(cuò)誤,finally 語句中的代碼都會(huì)執(zhí)行。示例代碼如下:
<script> // 接收用戶輸入的參數(shù) var num = prompt("輸入一個(gè) 0 到 100 的數(shù)字"); // 獲取當(dāng)前時(shí)間 var start = Date.now(); try { if(num > 0 && num <= 100) { console.log(Math.pow(num, num)); // 指數(shù)冪的基 } else { console.log("輸入的值無效!"); } } catch(e) { console.log(e.message); } finally { // 顯示執(zhí)行代碼所用的時(shí)間 console.log("代碼執(zhí)行花費(fèi)了:" + (Date.now() - start) + "ms"); } </script>
假如我們輸入一個(gè)小于 100 的數(shù)字,例如 88,運(yùn)行結(jié)果如下:
1.3015928349429721e+171 代碼執(zhí)行花費(fèi)了:0ms
假如我們輸入一個(gè)大于 100 的數(shù)字,例如 123,運(yùn)行結(jié)果如下:
輸入的值無效! 代碼執(zhí)行花費(fèi)了:0ms
【推薦學(xué)習(xí):javascript高級(jí)教程】