錯誤,指程序中的非正常運行狀態,在其餘編程語言中稱爲‘異常’或‘錯誤’。解釋器會爲每個錯誤情形建立並拋出一個Error對象,其中包含錯誤的描述信息。
經過使用JavaScript提供的異常處理語句,能夠用構造化的方式來捕捉髮生的錯誤,讓異常處理代碼與核心業務代碼現實分離。錯誤與異常處理在應用中的重要性是毋庸置疑的。任何有影響力的Web應用都須要一套完善的錯誤處理機制。編程
try...catch 語句做爲JavaScrip中處理異常的一種標準方式。try語句標記一塊帶嘗試的語句,若是該語句出現錯誤,則經過catch語句進行捕捉。基本的語法以下
try{
//可能會致使錯誤的代碼
}catch(error){
//在錯誤發生時的處理
}、瀏覽器
可使用捕捉塊來處理全部可能在try代碼塊中產生的異常。
catch(catchID){
statements
}
捕捉塊制定了一個標識符(上述語句中的catchID)來存放拋物語句指定的指。
能夠用這個標識符來獲取拋出的異常信息。編程語言
終結塊包含了在try和catch塊完成後,下面接着的語句以前執行的語句。終結塊不管是否拋出異常都會執行。若是拋出一個異常,就算沒有異常處理,終結塊李的語句也會執行。
try{
console.log(0);
}catch(error){
console.log(1);
}finally{
console.log(3);
}code
能夠嵌套一個或多個try...catch語句。若是一個內部的try...catch語句沒有捕捉塊,將會啓動匹配外部的TRY...catch語句的捕捉塊。
try{
console.log(0);
}catch(error){對象
try{console.log(1); }catch(error){
console.log(2)繼承
}
}ip
執行代碼期間可能會發生的錯誤有多種類型,每種錯誤都有對應的錯誤類型。當錯誤發生時,就會拋出對應類型的錯誤對象。
Error 是基本錯誤類型,其餘錯誤類型都是繼承自該類型。Error類型的錯誤不多見,若是有也是瀏覽器拋出的。這個基礎錯誤類型的主要目的時提供給開發人員派出自定義的錯誤。開發
除了基本錯誤類型以外,JavaScript還提供了七種預約義的錯誤類型
錯誤 類型 說明
EvalError 與eval()有關
intemalError 標識JavaScript引擎內部錯誤的異常。
RangeError 數值變量或參數超出其有效範圍。
ReferenceError 無效引用。
SyntaxError eval()在解析代碼的過程當中發生的語法錯誤。
TypeError 變量或參數不屬於有效類型
URIError 給encodeURI()decodeURI()傳遞的參數無效、console
與try...catch語句相配合使用的還有throw 操做符,用於隨時拋出自定義錯誤。拋出錯誤是,必需要給throw操做符指定一個值(這個值說明類型,沒有要求。)
throw'Error';//String類型
throw 42 //Number類型
throw true ;//Boolean類型基礎