定義以及用法:javascript
try/catch/finally 語句用於處理代碼中可能出現的錯誤信息。html
錯誤多是語法錯誤,一般是程序員形成的編碼錯誤或錯別字。也多是拼寫錯誤或語言中缺乏的功能(可能因爲瀏覽器差別)。java
try語句容許咱們定義在執行時進行錯誤測試的代碼塊。程序員
catch 語句容許咱們定義當 try 代碼塊發生錯誤時,所執行的代碼塊。編程
finally 語句在 try 和 catch 以後不管有無異常都會執行。瀏覽器
注意: catch 和 finally 語句都是可選的,但你在使用 try 語句時必須至少使用一個。編程語言
提示: 當錯誤發生時, JavaScript 會中止執行,並生成一個錯誤信息。使用 throw 語句 來建立自定義消息(拋出異常)。若是你將 throw 和 try 、 catch一塊兒使用,就能夠控制程序輸出的錯誤信息。函數
總結:測試
try { //執行的代碼,其中可能有異常。一旦發現異常,則當即跳到catch執行。不然不會執行catch裏面的內容 }
catch { //除非try裏面執行代碼發生了異常,不然這裏的代碼不會執行 }
finally { //無論什麼狀況都會執行,包括try catch 裏面用了return ,能夠理解爲只要執行了try或者catch,就必定會執行 finally } 編碼
案例:
(function (){ try{ throw new Error(); }catch(x){ var x = 1, y = 2; console.log(x); // 1 } console.log(x); //undefined console.log(y); //2 }());
下面說一下js錯誤Error對象的詳解:
一·概念
error,指程序中的非正常運行狀態,在其餘編程語言中稱爲「異常」或「錯誤」。解釋器會爲每一個錯誤情形建立並拋出一個Error對象,其中包含錯誤的描述信息。
ECMAScript定義了六種類型的錯誤。除此以外,還可使用Error構造方法建立自定義的Error對象,並使用throw語句拋出該對象。
六種錯誤:
二·錯誤處理
即便程序發生錯誤,也保證不異常中斷的機制。
try{ 可能發生錯誤的代碼 }catch(err){ 只有發生錯誤時才執行的代碼 }finally{ 不管是否出錯,確定都要執行的代碼 }
什麼時候:若是函數的定義者,須要告知調用者使用過程當中的錯誤;
如何:throw new Error("提示文字");
// 甲:定義函數的人 function round(num, d){ if(!isNaN(num) && !isNaN(d)){ num *= Math.pow(10, d); return num; }else{ // 拋出自定義錯誤 throw new Error("參數必須是數字"); } } // 乙:調用函數的人 var d = parseInt(prompt('請輸入數字')); try{ alert(round(123.456, d)); }catch(err){ alert(err.message); // 接住拋出的自定義錯誤 }