JavaScript 錯誤處理

2021-09-04 02:44:01 字數 1391 閱讀 4873

1. try-catch

ecma-262第3版引入了try-catch語句,基本的語法如下所示:

try 

catch(error)

如果try塊中的任何**發生錯誤,就會立即執行catch塊。此時,catch塊會接收到乙個包含錯誤資訊的物件。即使不使用這個錯誤物件,也要起個名字,物件中包含的實際資訊因瀏覽器而異,但共同的是乙個儲存錯誤訊息的message屬性,ecma-262還規定了乙個儲存錯誤型別的name屬性,所有瀏覽器都支援這個屬性(opera 9之前的版本除外)。

2. finally

雖然在try-catch塊中是可選的,但finally子句一經用,無論如何都會執行,甚至return語句都不會阻止,例如:

function test() 

catch(error) 

finally 

}

3. 錯誤型別

每種錯誤都有對應的錯誤型別,而當錯誤發生時,就會丟擲相應型別的錯誤物件,ecma-262定義了7種錯誤型別:

1) error: 基型別。

2) evalerror: 使用eval()函式發生異常時丟擲。

3) rangeerror: 數值超出相應範圍時丟擲。

4) referenceerror: 找不到物件時丟擲。

5) syntaxerror: 使用eval()函式中的字串有語法錯誤時丟擲。

6) typeerror: 在變數中儲存意外型別或訪問不存在的方法時丟擲。

7) urierror: 使用encodeuri或decodeuri()中uri格式不正確時丟擲。

4. 丟擲錯誤

與try-catch相配的還有乙個throw操作符,用於拋出自定義錯誤。丟擲錯誤時,必須給throw操作符指定乙個值,這個值的型別沒有要求,例如:

throw 123;

throw "hello world!";

在遇到throw操作符時,**會立即停止執行。

5. 錯誤事件

沒有通過try-catch處理的錯誤都會觸發window物件的error事件。任何瀏覽器中,onerror事件處理程式都不會建立event物件,但它可以接受3個引數:錯誤訊息、錯誤所在的url和行號。只要發生錯誤,無論是不是瀏覽器生成的,都會觸發error事件,並執行這個事件處理程式,如果在事件處理程式中返回false,可以阻止瀏覽器報告錯誤的預設行為,例如:

window.onerror = function(message, url, line)
影象也支援error事件,只要影象的src屬性中的url不能返回可以被識別的影象格式,就會觸發error事件。

JavaScript 錯誤處理

1.try catch ecma 262第3版引入了try catch語句,基本的語法如下所示 try catch error 如果try塊中的任何 發生錯誤,就會立即執行catch塊。此時,catch塊會接收到乙個包含錯誤資訊的物件。即使不使用這個錯誤物件,也要起個名字,物件中包含的實際資訊因瀏覽...

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 這樣...