亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

需要了解的JavaScript 異常類型有哪些

發布時間:2021-09-30 14:10:36 來源:億速云 閱讀:121 作者:柒染 欄目:系統運維

需要了解的JavaScript 異常類型有哪些,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

無論是瀏覽器控制臺還是 Node.js 的服務端,我們會在各種地方看到 JavaScript  異常,異常處理是編寫程序必備的基礎能力,在學習異常處理之前,了解 JavaScript 中的幾種異常類型是非常有必要的。

Error

Error 是最基本的錯誤類型,其他的錯誤類型都繼承自該類型。Error 對象主要有兩個重要屬性 message 和 name  分別表示錯誤信息和錯誤名稱。

程序運行過程中拋出的異常一般都有具體的類型,Error 類型一般都是開發人員自己拋出的異常。

try {   throw new Error('ConardLi拋出的異常'); } catch (error) {   console.log(error); }

需要了解的JavaScript 異常類型有哪些

SyntaxError -  語法錯誤

語法錯誤也稱為解析錯誤。語法錯誤在任何編程語言中都是最常見的錯誤類型,表示不符合編程語言的語法規范。

JavaScript 是一門解釋性語言,執行一段代碼時需要經歷 詞法分析 -> 語法分析 -> 語法樹 就可以開始解釋執行了:

需要了解的JavaScript 異常類型有哪些

詞法分析是將字符流(char stream)轉換為記號流(token stream)、語法分析階段會將記號流(token  stream)生成抽象語法樹(AST)。

在這兩個階段,如果 Javascript引擎發現了預期之外/無法抓換的 token,或者 token 順序和預期不一致時,就會拋出  SyntaxError。

需要了解的JavaScript 異常類型有哪些

因此 SyntaxError 應該和其他類型的異常區分開,此類異常發生在  JavaScript解析/編譯時,此類異常一旦發生,導致整個js文件都無法執行,而其他異常發生在代碼運行時,這一類的錯誤會導致在錯誤出現的那一行之后的代碼無法執行,但在那一行之前的代碼不會受到影響。

TypeError - 類型錯誤

運行時最常見的異常,表示變量或參數不是預期類型,比如 new 關鍵字后面必須為構造函數、()前必須為函數。

需要了解的JavaScript 異常類型有哪些

ReferenceError -  引用錯誤

引用一個不存在的變量時發生的錯誤,每當我們創建或定義一個變量時,變量名稱都會寫入一個變量存儲中心中。這個變量存儲中心就像鍵值存儲一樣,每當我們引用變量時,它都去存儲中找到  Key 并提取并返回 Value,如果我們要找的變量不在存儲中,就會拋出 ReferenceError。

需要了解的JavaScript 異常類型有哪些

請注意,如果我們調用的是一個已經存在的變量的一個不存在的屬性,則不會拋出  ReferenceError,因為變量本身已經在存儲中了,調用它不存在的屬性只會是未定義狀態,也就是 undefined:

需要了解的JavaScript 異常類型有哪些

RangeError - 邊界錯誤

表示超出有效范圍時發生的異常,主要的有以下幾種情況:

  • 數組長度為負數或超長

  • 數字類型的方法參數超出預定義范圍

  • 函數堆棧調用超過最大值

需要了解的JavaScript 異常類型有哪些

URIError - URL 錯誤在調用 URI 相關的方法中 URL 無效時拋出的異常,主要包括  encodeURI、decodeURI()、encodeURIComponent()、decodeURIComponent()、escape()和unescape()幾個函數:

需要了解的JavaScript 異常類型有哪些

自定義異常

另外,為了滿足各種各樣的業務需求,除了 JavaScript  已經給定的異常類型,我們還可以自定義一些異常類型,比如我們要根據不同的異常類型給用戶不同的錯誤提示:

class UnAuthError extends Error { }  class ParamError extends Error { }  function controller() {   throw new UnAuthError(); }  try {   controller(); } catch (error) {   if (error instanceof UnAuthError) {     return '無權限';   }    if (error instanceof ParamError) {   return '參數錯誤';   }  }

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

普洱| 汾西县| 栖霞市| 堆龙德庆县| 延川县| 岗巴县| 庆云县| 称多县| 定南县| 革吉县| 青冈县| 长寿区| 吐鲁番市| 临桂县| 内丘县| 定南县| 中阳县| 仙游县| 云阳县| 沙洋县| 陆河县| 谷城县| 枣阳市| 平阴县| 富阳市| 文化| 昌平区| 昌吉市| 五华县| 茶陵县| 海盐县| 秦皇岛市| 巴楚县| 高密市| 盐城市| 泸水县| 太康县| 邢台县| 海伦市| 麟游县| 房山区|