js017 錯誤處理與除錯

2022-07-25 12:21:06 字數 2469 閱讀 1286

js017-錯誤處理與除錯

本章內容

理解瀏覽器報告的錯誤

處理錯誤

除錯js**

17.2錯誤處理

17.2.1try-catch語句

trycatch(error)catch(error)finally{

return 0;

該函式只會返回0,只有當最後面的finally去掉後該函式才可能返回2.

2、錯誤型別

以下7種錯誤型別:及其觸發場景

error

基型別evalerror

在使用eval()函式而發生異常是丟擲

rangeerror

在數值超出相應範圍時觸發

referenceerror

找不到物件是觸發

syntaxerror

當我們把錯誤的js字串傳入eval()函式是觸發

typeerror

在變數中儲存著意外的型別是,或者在訪問不存在的方法時。

urierror

在使用encodeuri()或decodeuri(),而uri格式不正確時

3、合理使用try-catch

17.2.2丟擲錯誤

throw 操作符,用於隨時拋出自定義錯誤。在遇到throw時,**會立即停止執行。僅當有try-catch捕獲到被丟擲的錯誤時**才會繼承執行。

1、丟擲錯誤的時機

2、丟擲錯誤與使用try-catch

17.2.3錯誤事件

只要發生錯誤,無論是不是瀏覽器生成的都會觸發error事件,並執行事件,處理程式。

如下事件處理程式中返回false,可以組織瀏覽器報告錯誤的預設行為

window.onerror = function(message, url, line){

alert(message);

return false;

影象也支援error事件。只要影象中的額src特性中的url不能返回可以被識別的影象格式,就會觸發error事件。

17.2.4處理錯誤的策略

17.2.5常見的錯誤型別

錯誤處理的核心是首先要知道**裡會發生什麼錯誤。一般來說,需要關注三種錯誤:

1、型別轉換錯誤;

發生在使用給某個操作符,或者使用其他可能會自動高轉換至的資料型別的語言結構時。在使用相等(==)不等(!=)或者if,for,while等流控制語句中使用非布林值是,最長發生型別轉換錯誤。

使用全等和非全等操作符,可以避免發生因為使用相等和不等操作符引發的型別轉換錯誤

2、資料型別錯誤;

3、通訊錯誤;

17.2.6區分之名錯誤和非致命錯誤

17.2.7把錯誤記錄到伺服器

17.3除錯技術

17.3.1將訊息記錄到控制台

ie8,firefox,opera,chrome,safari,都有js控制台,可以用來檢視js錯誤。而且,在這些瀏覽器中的,偶可以通過**想控制台輸出訊息,對ie8,firefox,chrome,safari,而言可以通過console物件向js控制台寫入該訊息,這個物件具有下列方法:

error(message)

將錯誤訊息記錄到控制台

info(message)

將資訊性訊息記錄到控制台

log(message )

將一般訊息記錄到控制台

warn(message)

將警告訊息記錄到控制台

17.3.2將訊息記錄到當前頁面

在頁面中開闢一小塊區域用於顯示小。這個區域通常是乙個元素。

17.3.3丟擲錯誤

17.4常見的ie錯誤

1、操作終止

2、無效字元

3、未找到成員

4、未知執行時錯誤

5、語法錯誤

6、系統無法找到指定資源

js錯誤處理和除錯

1 重點關注函式和可能導致函式執行失敗的因素。2 丟擲錯誤和使用try catch的時機 一般來說在應用程式架構較低的層次中經常會丟擲錯誤。這個層次並不會影響當前執行的 錯誤也得不到真正的處理。在多應用中使用的庫和應用內部多處使用的輔助函式時,丟擲錯誤後要提供詳盡的錯誤資訊。3 只捕獲確切知道該如何...

javascript 錯誤處理與除錯 一

try catch 特點 1.可以獲取錯誤資訊 2.可以避免瀏覽器控制台報錯 3.可以遮蔽錯誤,繼續執行,ps,但是繼續執行的語句如果和錯誤的語句有上下文關聯,那麼下面的語句可能繼續出錯 try catch e ps try表示嘗試著執行裡面的 如果有錯誤,就去執行catch裡面的 alert tr...

javascript 錯誤處理與除錯 二

try catch的意義 1.可以通過修改 來排錯,不需要使用try catch 2.瀏覽器相容性問題,可以通過判斷瀏覽器或判斷是否支援某個屬性或方法來判斷 不需要try catch 比如,無法修改 的情況下,可能會傳送錯誤,這個時候用try catch,網路中斷了 trycatch e ps 這樣...