JavaScript 中的錯誤類型

注:本文最后更新時間:2017/03/06

前言:最近在重新翻看《你不知道的 JavaScript 》,在作用域一章中講到了異常,提到了兩種常見的錯誤類型。這里順手將 js 的錯誤類型整理一下。

Error 類型

js 中的錯誤類型主要有以下 6 種:SyntaxError
、TypeError
、ReferenceError
RangeError
、EvalError
URIError
。

這些錯誤類型繼承自 Error
, 構造一個新的 Error 對象:

new Error([message[, fileName[, lineNumber]]])

當錯誤產生時,Error 的實例對象會被拋出。

6 種不同錯誤類型的示例

  1. SyntaxError:語法錯誤
123consloe.log(123)   // Uncaught SyntaxError: Unexpected identifier
console.123)          // Uncaught SyntaxError: Unexpected number
// 注意,下面這種不是語法錯誤:
consloe.log(123)      // Uncaught ReferenceError: consloe is not defined
  1. TypeError:類型錯誤,即值的類型非預期類型
// 下面的例子 a 為 number 類型,強行以函數(shù)方式調用 a
let a = 123;
a();                  // Uncaught TypeError: a is not a function
  1. ReferenceError:引用錯誤,引用一個不存在的變量
// RHS
let a = b;            // Uncaught ReferenceError: b is not defined
  1. RangeError:溢出錯誤,值超出了有效范圍
let a = new Array(-1);  // Uncaught RangeError: Invalid array length
// 注意,下面這種不是溢出錯誤,因為數(shù)組是一種特殊的對象
let a = [1,2,3];
console.log(a[-1]);   // undefined
  1. EvalError:eval 函數(shù)執(zhí)行錯誤。
    這個API 是為了向下兼容?,F(xiàn)在 eval() 程序出錯,引擎也會提示上面提到的具體錯誤,而不會拋出 EvalError,除非手動 new EvalError() 觸發(fā)錯誤。

  2. URIError:URI 相關函數(shù)錯誤使用。

decodeURI('%1')        // Uncaught URIError: URI malformed
  1. 來自 MDN 的第七種錯誤,InternalError:JavaScript 引擎內部錯誤,大部分瀏覽器都沒有實現(xiàn)這個 API。
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容