JavaScript中的錯誤類型

@(javascript)[JavaScript錯誤處理] [toc]javascript

做爲一個程序員,須要的不單單是技術,更是須要在遇到錯誤的時候對錯誤的處理能力。就前端而言,技術一直在更新,可是JavaScript中的錯誤也就是那麼幾個。掌握不一樣的報錯信息會讓你的實際開發事半功倍。前端

JavaScript中的錯誤類型

  • Error
  • EvalError
  • RangeError
  • ReferenceError
  • SyntaxError
  • TypeError
  • URIError

Error

Error是最基本的錯誤類型,其餘的錯誤類型都繼承自該類型。所以,全部錯誤的類型共享了一組相同的屬性。 這個類型的錯誤不多見。通常使用開發人員自定義拋出的錯誤。java

EvalError

這個錯誤會在使用eval()函數發生異常時候拋出。兩種狀況會出錯:程序員

  1. new eval();
  2. eval = foo; 上面兩個的意思結合就是沒有直接調用eval函數,而是new或者是從新賦值 這個錯誤基本上不會遇到,由於eval函數原本用的就很少。不過須要注意的是,eval是一個關鍵字。

RangeError

這個錯誤會在數值超出相應範圍時觸發。好比使用new Array()的時候傳遞一個負數或者是超過數組最大長度(4,294,967,295)的數,好比Number.MAX_VALUE,Number.MIN_VALUE。注意遞歸爆炸也有這個錯誤。數組

ReferenceError

這個錯誤通常就是出如今變量找不到的狀況,好比:函數

var a = b;
Uncaught ReferenceError: b is not defined
複製代碼

這時候就須要檢查一下一個變量了ui

SyntaxError

當Javascript語言解析代碼時,Javascript引擎發現了不符合語法規範的tokens或token順序時拋出SyntaxError。spa

TypeError

這個錯誤在JavaScript中是常常遇到的,無論是初學者仍是老手。在變量中保存着之外的類型時,或者在訪問不存在的方法時。都會致使這種錯誤。可是歸根結底仍是因爲在執行特定於類型的操做時,變量的類型並不符合要求所致。好比:code

var o = new 10;
a.style.widht = "10px";
複製代碼

關於設置樣式這個東西,新手會遇到不少,通常這都是由獲取不到元素致使的。繼承

URIError

在使用encodeURI或者decodeURI由於URL格式不正確時,就會致使URIError錯誤。這種錯誤也不多見。

使用try-catch進行錯誤處理

try-catch是一個錯誤處理的方法。使用法法是:

try {
	// 嘗試執行的代碼
} catch(error) {
	// 若是上市執行的代碼不成功則執行這段代碼
}
複製代碼

代碼中 catch語句的error不能省略。 在本身不能把我是否會出錯的地方使用try-catch語句能讓代碼運行的更舒服。try-catch語句其實還有一句finally語句:

try {
	// 嘗試執行的代碼
} catch(error) {
	// 若是上市執行的代碼不成功則執行這段代碼
} finally {
	// finally的語句始終都會執行
}
複製代碼

由於finally語句使用會執行,因此咱們通常都不會使用 finally語句。

拋出錯誤

在使用try-catch語句時發生錯誤咱們能夠執行其餘事情或者是拋出這個錯誤。拋出錯誤使用throw操做符。

try {
	alert(a)
} catch(error){
	throw new Error("a is not defined")
}
複製代碼

上面的代碼就會拋出一個通常的錯誤:Uncaught Error: a is not defined。具體拋出什麼錯誤根據實際狀況肯定。類型就是上面的那幾種錯誤類型。

相關文章
相關標籤/搜索