国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

JavaScript錯誤處理操作實例詳解

2024-05-06 15:43:34
字體:
來源:轉載
供稿:網友

本文實例講述了JavaScript錯誤處理操作。分享給大家供大家參考,具體如下:

良好的錯誤處理機制可以讓用戶得到及時的提醒,所以讓我們來看看 JavaScript 提供了哪些針對錯誤處理的工具和方法吧O(∩_∩)O~

1 try-catch 語句

ECMA-262 第 3 版引入了 try-catch 語句,這時 JavaScript 處理異常的標準方式:

try{  //可能會導致錯誤的代碼} catch (error){  //錯誤處理}

如果 try 塊中的代碼發(fā)生了錯誤,會立即執(zhí)行 catch 塊的代碼。 catch 塊有一個包含錯誤信息的對象,它有一個 message 屬性,表示的是瀏覽器給出的錯誤消息:

<script type="text/javascript">  try {    window.someNonexistenceFunction();  } catch (error) {    console.log(error.message);  }</script>

message 屬性是所有的瀏覽器都支持的屬性,所以在跨瀏覽器編程中,最好只使用這個屬性。

1.1 finally 子句

finally 子句是可選的,如果使用了 finally 子句,里面包含的代碼是絕對會被執(zhí)行的!甚至連 return 語句都無法阻止它被執(zhí)行:

<script type="text/javascript">  function testFinally() {    try {      return 2;    } catch (error) {      return 1;    } finally {      return 0;    }  }  console.log(testFinally());//0</script>

IE7 及更早的版本有一個 bug:除非有 catch 子句,否則 finally 中的代碼永遠不會被執(zhí)行!IE8 修復了這個 bug。

注意:只要在代碼中使用了 finally 子句,那么不管 return 放在 try 還是 catch 語句中,都會被忽略!

1.2 錯誤類型

當錯誤發(fā)生時,會拋出相應類型的錯誤對象。ECMA-262 定義了 7 種錯誤類型:

Error EvalError RangeError ReferenceError SyntaxError TypeError URIError

1.2.1 Error

Error 是基類型,即其他的錯誤類型都是從 Error 繼承來的。可以利用 Error 來自定義錯誤類型。

1.2.2 EvalError

EvalError 是在使用 eval() 函數發(fā)生異常時被拋出。怎么才算是異常呢?如果沒有把 eval() 當作函數來使用,就會拋出 EvalError:

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

實際開發(fā)中很少這樣使用 eval() 函數的(除非腦袋秀逗了O(∩_∩)O~),所以很少會遇到 EvalError。

1.2.3 RangeError

RangeError 會在數值超出規(guī)定范圍時被拋出。比如在定義數組時,指定了數組不支持的數組項數,就會拋出這個錯誤:

var item1 = new Array(-20);//拋出 RangeErrorvar item1 = new Array(Number.MAX_VALUE);//拋出 RangeError

1.2.4 ReferenceError

找不到對象時,會拋出 ReferenceError(這就是瀏覽器的知名的 “object expected” 錯誤)。一般在訪問不存在的變量時,會拋出這個錯誤:

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 永定县| 连城县| 竹山县| 曲松县| 平定县| 大名县| 靖安县| 巴楚县| 张家口市| 鹤庆县| 富源县| 长沙市| 茌平县| 宜阳县| 三河市| 保山市| 宁城县| 郑州市| 神木县| 平舆县| 丁青县| 鞍山市| 临沂市| 城固县| 榆林市| 永平县| 昭觉县| 五家渠市| 同江市| 天长市| 焦作市| 惠州市| 宁化县| 北宁市| 永平县| 开化县| 栾川县| 临潭县| 修水县| 曲阜市| 乐东|