国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表

圖片精選

主站蜘蛛池模板: 莒南县| 连江县| 威信县| 西藏| 苗栗县| 卓尼县| 阿拉善盟| 平邑县| 湖口县| 许昌市| 富川| 织金县| 浪卡子县| 安宁市| 潢川县| 隆尧县| 怀化市| 吉木乃县| 江孜县| 嵊泗县| 蒙山县| 额尔古纳市| 昌平区| 兴安盟| 大丰市| 光泽县| 石城县| 买车| 兰溪市| 分宜县| 蒙自县| 子长县| 柳河县| 林周县| 塔河县| 常德市| 五华县| 湖南省| 沙洋县| 永修县| 托克托县|