錯誤型別
JavaScript 中有六個特定的核心錯誤建構函式:
-
EvalError
- 建立一個例項,表示關於全域性函式eval()
發生的錯誤。 -
InternalError
- 建立一個例項,表示在引發 JavaScript 引擎中的內部錯誤時發生的錯誤。例如過多的遞迴。 (僅受 Mozilla Firefox 支援 ) -
RangeError
- 建立一個例項,表示當數字變數或引數超出其有效範圍時發生的錯誤。 -
ReferenceError
- 建立一個例項,表示解除引用無效引用時發生的錯誤。 -
SyntaxError
- 建立一個例項,表示在解析eval()
中的程式碼時發生的語法錯誤。 -
TypeError
- 建立一個例項,表示當變數或引數不是有效型別時發生的錯誤。 -
URIError
- 建立一個例項,表示當encodeURI()
或decodeURI()
傳遞無效引數時發生的錯誤。
如果你正在實現錯誤處理機制,你可以檢查從程式碼中捕獲的錯誤型別。
try {
throw new TypeError();
}
catch (e){
if(e instanceof Error){
console.log('instance of general Error constructor');
}
if(e instanceof TypeError) {
console.log('type error');
}
}
在這種情況下,e
將是 TypeError
的一個例項。所有錯誤型別都擴充套件了基礎建構函式 Error
,因此它也是 Error
的一個例項。
牢記這一點向我們表明,在大多數情況下,將 e
視為 Error
的例項是沒用的。