日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

簡介JavaScript錯誤處理機制

瀏覽:247日期:2023-10-19 08:43:58

1、 try-catch語句

ECMA-262第3版引入了try-catch語句,作為JavaScript中處理異常的一種標準方式。

語法:

try{ // 可能會導致錯誤的代碼}catch (error){ // 在錯誤發生時怎么處理}

也就是說,我們應該把所有可能會拋出錯誤的代碼都放在try語句塊中,而把那些用于錯誤處理代碼放在catch塊中。

try-catch語句的邏輯是:如果try塊中的任何代碼發生了錯誤,就會立即退出代碼執行過程,然后接著執行catch塊。此時,catch塊會接收到一個包含錯誤信息的對象。

注意:即使你不想使用這個錯誤對象,也要給它起個名字。

雖然這個對象在不同瀏覽器中可能包含不同信息,但是都有一個保存著錯誤消息的message屬性,還有一個保存錯誤類型的name屬性(并不是所有瀏覽器都有)

try{ }catch (error){ console.log(error.message);}

在跨瀏覽器編程時,最好還是只使用message屬性。

1.1 finally子句

當使用finally子句時,其代碼無論如何都會執行,也就是說,不管是正常執行還是出錯了,finally子句都會執行。甚至return語句,也不會阻止finally子句的執行??聪旅娴睦樱?/p>

function test(){try{ console.log(’a’); return 2;}catch(error){ console.log(’b’);}finally{ console.log(’c’);}}console.log(test()); //結果ac2

從運行結果,我們可以看到,return語句并沒有阻止finally子句的執行,而且是在finally子句執行后才會返回return語句的值。

2、錯誤類型

執行代碼期間可能會發生的錯誤有多種類型。每種錯誤都有對應的錯誤類型,而當錯誤發生時,會拋出相應類型的錯誤對象。ECMA-262定義了下列7中錯誤類型:

ErrorEvalErrorRangeErrorReferenceErrorSyntaxErrorTypeErrorURIError

Error是基類型,其他錯誤類型都繼承自該類型。所有錯誤類型共享了一組相同的屬性。

(1)EvalError類型

EvalError類型的錯誤會在使用eval()函數而發生異常時拋出。簡單的說,如果沒有把eval()當成函數調用,就會拋出異常。比如:

new eval() // 拋出EvalErroreval = foo; // 拋出EvalError

注意:在ES5中已經不在出現了。

(2)RangeError類型

RangeError類型的錯誤會在數值超出相應范圍時觸發。主要有幾種情況,一是數組長度為負數,二是Number對象的方法參數超出范圍,以及函數堆棧超過最大值。

var item = new Array(-20); // 拋出RangeError異常

(3)ReferenceError類型

在找不到對象的情況下,會發生ReferenceError。通常,在訪問不存在的變量時,就會發生這種錯誤。

var obj = x; // 在x并未聲明的情況下拋出ReferenceError

(4)SyntaxError類型

SyntaxError是解析代碼時發生的語法錯誤。

var 1a; // 變量名錯誤,拋出SyntaxError

(5)TypeError類型

在變量中保存著意外的類型,或在訪問不存在的方法時,都會導致這種錯誤。

var o = new 10; //拋出TypeError

(6)URIError類型

URIError是URI相關函數的參數不正確時拋出的錯誤,主要涉及encodeURI()、decodeURI()、encodeURIComponent()、decodeURIComponent()、escape()和unescape()這六個函數。

2.2 拋出錯誤

與try-catch語句相配的還有一個throw操作符,用于隨時拋出自定義錯誤。拋出錯誤時,必須要給throw操作符指定一個值,這個值可以是任何類型。

throw 1;throw ’tg’;throw true;throw {name: ’tg’};

2.3 Error對象

所有拋出的錯誤都是Error構造函數的實例。Error構造函數接受一個參數,表示錯誤提示,可以從實例的message屬性讀到這個參數。

在JavaScript中,Error對象的實例必須有message屬性,表示出錯時的提示信息。在大多數JavaScript引擎中,Error實例還可能有name和stack屬性,分別表示錯誤的名稱和錯誤的堆棧。

var err = new Error(’出錯了’);err.message; // '出錯了'

2.4 自定義錯誤

我們還可以創建自定義錯誤消息,最常用的錯誤類型是Error、RangeError、ReferenceError和TypeError。

throw new Error(’報錯了’);throw new RangeError(’數組長度錯誤’);

另外,利用原型鏈還可以通過繼承Error來創建自定義錯誤類型:

function CustomError(message){ this.name = ’CustomError’; this.message = message;}CustomError.prototype = new Error();throw new CustomError(’我的錯誤信息’);

3、錯誤(error)事件

任何沒有通過try-catch處理的錯誤都會觸發window對象的error事件。

onerror事件處理程序不會創建event對象,但它接受三個參數:錯誤消息、錯誤所在的URL和行號。

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

當你在事件處理程序中返回false,可以阻止瀏覽器報告錯誤的默認行為

window.onerror = function(message, url, line){ return false;};

4、調試技術

4.1 alert方法

在以前,大多數都是在要調試的代碼中插入alert()函數,看是否執行到這一步來判斷哪里出錯,這種方式比較麻煩,因為alert()會阻止后續代碼的執行(除非你關閉了alert彈窗),而且調試后還要清理。

4.2 console

隨著瀏覽器的不斷改善,現在的瀏覽器都有JavaScript控制臺,我們可以向這些控制臺輸出消息,比如最常用的console對象,它的常用方法如下:

error(message):將錯誤消息記錄到控制臺 info(message):將信息性消息記錄到控制臺 log(message):將一般消息記錄到控制臺 warn(message):將警告消息記錄到控制臺

function test(){ console.log(’結果:’ + (1 + 2));}

4.3 throw

使用throw拋出錯誤。

以上就是簡介JavaScript錯誤處理機制的詳細內容,更多關于JavaScript錯誤處理機制的資料請關注好吧啦網其它相關文章!

標簽: JavaScript
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日韩精品一区二区三区中文字幕| 欧美专区在线| 久久蜜桃av| 精品国产乱码久久久| 日本不卡在线视频| 亚洲伊人精品酒店| 婷婷成人基地| 欧美三级网址| 国产一区二区三区四区五区传媒| 高清一区二区三区av| 国产aa精品| 群体交乱之放荡娇妻一区二区| 91日韩欧美| 日韩中文影院| 婷婷中文字幕一区| 亚洲午夜一级| 国产婷婷精品| 亚洲永久字幕| 欧美在线精品一区| 福利在线一区| 悠悠资源网久久精品| 在线精品视频一区| 国产欧美88| 久久99久久久精品欧美| 日韩av自拍| 亚洲激情中文在线| 红桃视频亚洲| 久久的色偷偷| 婷婷中文字幕一区| 欧美日本不卡| 波多野结衣久久精品| 伊人久久亚洲| 中文字幕在线免费观看视频| 亚洲一区欧美二区| 里番精品3d一二三区| 亚洲午夜精品久久久久久app| 久久精品主播| 在线精品视频一区| 国产欧美日韩精品一区二区免费| 免费一区二区三区在线视频| 国产伊人久久| 亚洲三级视频| 桃色一区二区| 国产精品久久久久久久久免费高清| 三级小说欧洲区亚洲区| 综合在线一区| 亚洲成人一区在线观看| 在线视频精品| 欧洲精品一区二区三区| 青草av.久久免费一区| 亚洲精品人人| 国产综合亚洲精品一区二| 精品国产美女a久久9999| 欧美精品资源| 福利精品一区| 欧美精品中文字幕亚洲专区| 久久国产精品毛片| 一区二区三区视频免费观看| 欧美成a人国产精品高清乱码在线观看片在线观看久 | 深夜福利亚洲| 青青久久av| 中文字幕在线高清| 麻豆精品新av中文字幕| 国产综合欧美| 91精品国产91久久久久久黑人| 美女高潮久久久| 国产午夜精品一区在线观看| 亚洲aa在线| 少妇高潮一区二区三区99| 亚洲深夜av| 久久av在线| 日韩视频在线一区二区三区 | 中文在线一区| 日韩欧美一区二区三区在线观看 | 久久爱www成人| 久久精品凹凸全集| 国产日韩一区| 国产96在线亚洲| 色婷婷久久久| 男人操女人的视频在线观看欧美| 免费精品国产| 在线成人动漫av| 丝袜亚洲另类欧美| 国产精品男女| 国产精品资源| 国产一区二区三区四区大秀| 伊人久久av| 欧美特黄一级大片| 视频一区欧美精品| 国产精品二区影院| 久久免费黄色| 亚洲理论在线| 精品国产一区二区三区av片| 国产亚洲一区二区手机在线观看| 91视频一区| 亚洲国产一区二区三区在线播放| 欧美日韩精品免费观看视频完整| 蜜臀精品一区二区三区在线观看| 国产毛片久久久| 国产精品一区二区99| 四虎成人av| 久久国产精品久久久久久电车| 久久久国产精品入口麻豆| 亚洲福利精品| 日韩国产91| 国产理论在线| 日韩av资源网| 亚洲91精品| 欧美精品中文字幕亚洲专区| 欧美一区二区三区高清视频 | 一二三区精品| 国产日韩一区二区三区在线 | 国产欧美亚洲一区| 欧美91福利在线观看| 亚洲视频电影在线| 国产一区二区久久久久| 欧美日韩亚洲一区在线观看| 欧美日韩国产一区精品一区| 另类小说一区二区三区| 亚洲永久字幕| 国产欧洲在线| 日韩精品欧美精品| 激情综合自拍| 成人精品国产亚洲| 国产精品一页| 99国内精品| 国产精品久久久久久久久久10秀 | 福利在线免费视频| 日韩精品一区二区三区中文在线| 红桃视频亚洲| 在线一区视频观看| 精品久久美女| 国产精品巨作av| 日本麻豆一区二区三区视频| 一区二区三区四区精品视频| 午夜亚洲福利在线老司机| 久久久久久黄| 欧美日韩国产传媒| 欧美激情日韩| 欧美日韩99| 亚洲人成亚洲精品| 亚洲精品美女91| 日韩在线网址| 日韩精品一级| 国产情侣一区| 国产精品传媒麻豆hd| 日韩精品成人在线观看| 亚洲一区亚洲| 亚洲精品黄色| 免费亚洲一区| 国产精品亚洲成在人线| 欧美精品成人| 成人在线视频免费看| 日韩福利在线观看| 国产亚洲一级| 日韩在线a电影| 欧美久久久网站| 精品高清久久| 日韩视频一区二区三区在线播放免费观看 | 超级白嫩亚洲国产第一| 日韩天堂在线| 午夜精品亚洲| 精品国产不卡| 99国产精品自拍| 欧美国产不卡| 国产精品亚洲综合在线观看| 美女视频免费精品| 成人午夜在线| 亚洲精品系列| av资源亚洲| 亚洲3区在线| 精精国产xxxx视频在线野外| 国产视频亚洲| 精品国产亚洲一区二区在线观看| 免费看av不卡| 亚洲精品一二| 亚洲精品一级二级| 中文亚洲免费| 国产一区二区三区黄网站| 免费欧美在线视频| 精品亚洲二区| 欧美日韩国产亚洲一区| 久久精品一区二区三区中文字幕| 久久国产中文字幕| 天堂va欧美ⅴa亚洲va一国产| 成人午夜在线| 欧美日一区二区在线观看| 久久精品123| 奇米狠狠一区二区三区| 狠狠爱成人网| 色偷偷偷在线视频播放| 欧美日韩网址| 日本不卡一区二区| 91精品一区| 免费在线观看精品| 97精品中文字幕| 91精品国产自产观看在线| 免费在线观看视频一区| 影视先锋久久| caoporn视频在线|