JavaScript的錯誤處理

來源:互聯網
上載者:User

標籤:使用   script   rom   state   從伺服器   ror   define   方式   應該   

一、錯誤類型

Error
EvalError
RangeError
ReferenceError
syntaxError 語法錯誤
TypeError
URIError

Error是基底類型,其他錯誤類型都繼承自該對象,因此所有的錯誤類型都共用一組相同的屬性。該錯誤類型很少見。

EvalError是使用eval()函數而發生的異常拋出的,當沒有吧eval()當成一個函數使用的時候就會拋出。

RangeError
數值超出一定的範圍會觸發,在找不到對象的時候也會觸發,在未聲明時候去使用變數時候也會觸發

TypeError
類型錯誤,最常見的額類型錯誤就是傳遞給函數的參數事先未檢查

 

二、try-catch語句

try{      leaf()} catch(error){      console.log(error.message);}
//leaf is not defined

 

三、finally

可選的,但是一旦使用,其代碼無論如何都會執行,即使前面使用了return

try{        return 1;}catch(error){        return 2;}finally{         return 3;}//chrome下報錯了Uncaught SyntaxError: Illegal return statement

 

四、拋出錯誤  throw操作  

在遇到throw符號的時候,代碼會立即執行。僅當try-catch語句捕獲到被拋出的值的時候,代碼才會繼續執行。

 throw new Error(‘something bad hanppened‘);

  

五、Error事件
  任何沒有通過try-catch處理的錯誤都會觸發window對象的error事件。只要發生錯誤,無論是不是瀏覽器產生的,都會觸發error事件,並執行這個事件的處理函數。img的沒有獲得正確的src也會觸發。

 

六、常見的錯誤類型

  1、類型轉換錯誤

  console.log(1==true) //true
  console.log(1==true) //false

       在if()之類的判斷語句中,在執行下一步的時候,會自動的把任何值轉換成布爾值。

       方案: 建議使用 ===    !== 操作符


       2、資料類型錯誤

  比如
  null 和undefined 使用點操作
  對非數組的值使用sort()的reversed()等方法

  方案:
  基本類型(undefined null boolean string number)用typeof去檢測;
  對象則用instanceof去檢測(注意array比較特別)

       3、通訊錯誤
  不正確的使用URL和在伺服器響應的資料不正確的時候
  解決,將資料發給伺服器應該使用encodeURIComponent()對資料進行編碼。

 

七、總結

避免瀏覽器響應JavaScript錯誤的方法

  1、在可能發生錯誤的地方使用try-catch語句,這樣有機會以適當的方式對錯誤給出響應,不必沿用瀏覽器的錯誤機制。

  2、是當時會用window.onerror事件處理常式,此方法可以處理try-catch不能處理的所有錯誤。

  3、發生書錯誤的主要原因
       類型轉換,
  未充分檢測資料類型
  發送到伺服器或從伺服器接收的資料有誤

 

JavaScript的錯誤處理

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.