成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

一篇文章帶你了解JavaScript錯誤處理

開發 前端
執行JavaScript代碼時,可能會發生意想不到的錯誤。錯誤可以是程序員編寫的編碼錯誤,由于輸入錯誤引起的錯誤以及其他不可預見的事情。

[[398756]]

大家好,我是前端進階者。

執行JavaScript代碼時,可能會發生意想不到的錯誤。錯誤可以是程序員編寫的編碼錯誤,由于輸入錯誤引起的錯誤以及其他不可預見的事情。

因此,為了處理錯誤,JavaScript提供了4個關鍵字。

一、JavaScript try ... catch語句

try語句允許定義一個代碼塊,該代碼塊在執行時將進行錯誤測試,catch如果try塊中發生錯誤,則該語句允許您定義要執行的代碼塊。

JavaScript語句try和catch成對出現。

  1. try { 
  2.  //try_statements-嘗試嘗試的語句 
  3. }catch(err){ 
  4.  //catch_statements-處理錯誤的語句 

完整代碼:

例中,將“alert”寫為“aaalert”來故意產生錯誤。

  1. <!DOCTYPE html> 
  2. <html> 
  3. <title>項目</title> 
  4.  
  5. <body style="background-color: aqua;"
  6. <h1>JavaScript Error</h1> 
  7.  
  8. <p>將" alert"寫為" aaalert"來故意產生錯誤:</p> 
  9.  
  10. <p id="result"></p> 
  11. <script> 
  12. try { 
  13. aaalert("Hello world"); 
  14. } catch (e) { 
  15. document.getElementById("result").innerHTML = e.name + "<br>" + e.message; 
  16. </script> 
  17.  
  18. </body> 
  19. </html> 

將" alert"寫為" aaalert"來故意產生錯誤:

發生錯誤時,JavaScript通常會停止運行,并創建一個具有兩個屬性的Error對象:name和message。

二、JavaScript throw語句

throw語句引發用戶定義的異常。

throw語句允許您創建自定義錯誤。從技術上講,這稱為“引發異常 ”。異常可以是JavaScript字符串,數字,布爾值或對象。

  1. throw "Invalid";  // 生成帶有字符串值的異常 
  2.  throw 32;   // 生成值為32的異常 
  3.  throw true;   // 生成值為true的異常 

如果throw與try和一起使用catch,則可以指定程序流程并生成自定義錯誤消息。

在例中,如果傳遞任何非數字參數,則getRectArea()將引發自定義錯誤:

  1. <script> 
  2. function getRectArea(width, height) { 
  3.   if (isNaN(width) || isNaN(height)) { 
  4.      throw "參數不是數字!"
  5.   } 
  6.  
  7. try { 
  8.   getRectArea(5, 'Z'); 
  9. catch(err) { 
  10.   document.getElementById('para').innerHTML = err; 
  11. </script> 

1. 輸入驗證

如果值錯誤,則引發異常(err)。catch語句捕獲異常(err),并顯示自定義錯誤消息。

  1. var x = document.querySelector("input").value; 
  2. try { 
  3.   if(x == "")  throw "is Empty"
  4.   if(isNaN(x)) throw "Not a Number"
  5.   if(x > 10)   throw "too High"
  6.   if(x < 5)throw "too Low"
  7. catch(err) { 
  8.   document.getElementById("para").innerHTML = "Input " + err; 

三、JavaScript 錯誤對象

JavaScript具有一個內置的Error對象,該對象在發生錯誤時提供錯誤信息。

四、錯誤類型

1. EvalError

當通過eval()函數執行代碼期間發生錯誤時,將拋出一個EvalError。但是,JavaScript不再拋出此錯誤,但是仍然保留此對象是為了向后兼容。

較新版本的JavaScript不會拋出異常EvalError,使用SyntaxError代替。

2. RangeError

當使用超出允許值范圍的數字時,將引發RangeError。

例如,創建長度為負數的數組將拋出RangeError。

  1. try { 
  2. var arr = new Array(-1); // throws a range error 
  3. } catch(err) { 
  4. document.getElementById("result").innerHTML = err.name + "<br>" + err.message; 

3. ReferenceError

試圖引用或訪問一個不存在的變量或對象時,通常會拋出一個ReferenceError。

  1. try { 
  2. var x = 5 + y; // 拋出引用錯誤 
  3. } catch(err) { 
  4. document.getElementById("result").innerHTML = err.name + "<br>" + err.message; 

4. SyntaxError

如果您的JavaScript代碼中有任何語法問題,則會在運行時引發SyntaxError。

  1. try { 
  2. eval("alert('Hello)");   // Missing ' will throw an error 
  3. } catch(err) { 
  4. document.getElementById("result").innerHTML = err.name + "<br>" + err.message; 

5. TypeError

當值不是期望的類型時,拋出TypeError。

  1. var num = 50; 
  2. try { 
  3. num.toUpperCase();   // 您不能將數字轉換為大寫 
  4. } catch(err) { 
  5. document.getElementById("result").innerHTML = err.name + "<br>" + err.message; 

6. URIError

當指定無效的URI(統一資源標識符)時,將引發URIError。

  1. <script> 
  2.       try { 
  3.         decodeURI("%"); // 你不能URI解碼百分比符號 
  4.       } catch (err) { 
  5.         document.getElementById("result").innerHTML = err.name + "<br>" + err.message; 
  6.       } 
  7. </script> 

五、總結

本文基于JavaScript ,介紹了常見的錯誤處理。對于每一種錯誤語句都做了詳細的分析,對于JavaScript 錯誤對象中需要注意的點。在實際操作中,遇到的難點提供了相對于的解決方法。希望能夠幫助讀者在遇到錯誤時 更好的調試,處理。

代碼很簡單,希望能夠幫助你更好的學習。

本文轉載自微信公眾號「前端進階學習交流」,可以通過以下二維碼關注。轉載本文請聯系前端進階學習交流學公眾號。

 

責任編輯:武曉燕 來源: 前端進階學習交流
相關推薦

2023-09-06 14:57:46

JavaScript編程語言

2021-01-26 23:46:32

JavaScript數據結構前端

2023-07-30 15:18:54

JavaScript屬性

2021-05-18 08:30:42

JavaScript 前端JavaScript時

2021-03-09 14:04:01

JavaScriptCookie數據

2024-04-19 14:23:52

SwitchJavaScript開發

2021-03-05 18:04:15

JavaScript循環代碼

2024-01-30 13:47:45

2021-06-24 09:05:08

JavaScript日期前端

2021-06-04 09:56:01

JavaScript 前端switch

2021-02-02 18:39:05

JavaScript

2020-11-10 10:48:10

JavaScript屬性對象

2021-01-29 18:41:16

JavaScript函數語法

2020-10-22 09:08:34

JavaScript

2020-10-27 11:08:01

JavaScript

2020-10-27 11:24:29

avaScript m

2021-05-25 10:15:20

JavaScript 前端作用域

2021-06-22 10:12:37

JavaScript 前端While 循環

2021-07-02 10:00:50

JavaScriptObject 函數

2021-01-08 09:03:01

JavaScript 數組數據
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品一区二区久久 | 狠狠做六月爱婷婷综合aⅴ 国产精品视频网 | 美女精品一区 | 日韩欧美精品 | 97精品国产97久久久久久免费 | 国产精品久久精品 | 亚洲大片在线观看 | 久久网亚洲 | 国产精品久久久久久二区 | 亚洲国产精品va在线看黑人 | 国精产品一区一区三区免费完 | 亚洲中午字幕 | 欧美一级特黄aaa大片在线观看 | 久久一区二| 国产精品久久久久久久岛一牛影视 | 一区二区三区国产 | 日韩三级电影在线看 | 国产精品69av | 一二三区av| 精品99久久| 伊人中文字幕 | 99reav| 午夜免费精品视频 | 欧美极品视频在线观看 | 青青草原综合久久大伊人精品 | 国产精品不卡一区 | 免费看91| 中文字幕一区二区三区四区 | 欧美在线网站 | 久久www免费人成看片高清 | 国产精品视频久久久久久 | 操久久| 久久爱综合 | 男女精品久久 | 男女激情网| 综合久久综合久久 | 日韩欧美在线视频观看 | 亚洲丝袜天堂 | 久久久久中文字幕 | 国产成人av一区二区三区 | 亚洲影音 |