首頁 > web前端 > js教程 > javascript程式設計異常處理實例小結_javascript技巧

javascript程式設計異常處理實例小結_javascript技巧

WBOY
發布: 2016-05-16 15:28:52
原創
1279 人瀏覽過

本文實例總結了javascript程式設計異常處理的方法。分享給大家參考,具體如下:

前言:在前一篇《asp.net開發中常見公共捕獲異常方式總結》,我們整理總結了asp.net服務端的異常處理。這篇接著前文,簡單總結並討論javascript在客戶端的異常處理。這樣asp.net的服務端和客戶端異常處理我們就都有了初步的認知。

1、煩人的腳本錯誤

樓豬常裝13,但普遍都沒有深度。偶然艱難地看懂了一段英文,終於可以深沉地再裝一回:

When browsing Web pages on the internet, we all have seen a JavaScript alert box telling us there is a runtime error and asking "Do you wish to debug?". Error message like this may be useful for atpers . When users see errors, they often leave the Web page.

上面這段話,哼哼,看不懂了吧? nc樓豬優雅且粗暴地理解一下就是,打開一個網頁,我們都不時碰到過網頁彈出腳步錯誤並詢問“是否要調試?”這種sb問題。煩不煩啊,正常用戶常常會習慣性地選擇右上紅叉,但是這種提示訊息可能對開發人員就tmd很有用。由此可見,我kao,開發人員不正常? !看來樓豬理解有誤。其實您不難看出,原文要告訴我們的最終意圖應該是,網頁裡出現腳本錯誤很要命,用戶體驗不好,白白「嚇跑」一批潛在用戶。

2、如何處理腳本錯誤

在js中,我們通常也是透過try...catch 來捕捉並處理異常。

try
{
 //Run some code here
}
catch(e)
{
 //Handle errors here
}

登入後複製

在實際程式碼中,我們可能會這麼寫:

function test(){
var txt="";
try{
  alert(aaa);//aaa是未声明的变量
}
catch(e){
  txt="There was an error on this page.\n\n";
  txt+="Error message: " + e.message + "\n\n";
  txt+="Error description: " + e.description + "\n\n";
  txt+="Error name: " + e.name + "\n\n";
  //alert(txt);//正式平台上可能需要注释掉该行
  }
}

登入後複製

還有一種比較通用的做法就是,給window物件的onerror事件註冊通用處理方法,並將下面的程式碼置於頁面的

節內:

window.onerror=function(){
  return true;
}

登入後複製

上面這種方式的好處是頁面裡寫一次,就不會彈出惱人的腳本錯誤,有點全局處理的意思。對於開發人員,這種寫法可能會隱藏潛在的腳本錯誤而不被發現,所以測試的時候需要註解掉上面的函數。

3、javascript裡的Error

(1)、Error物件的常用屬性

在我們捕獲異常的時候,通常都會在catch處拋出一個Error物件的實例e,e的幾個常用屬性如下:

屬性                            說明
description                     且有異常的描述資訊
message                         且異常的描述資訊
name                             例外型態
number                          且獨特的異常代號

在實際開發中,通常都會提示給開發人員message和name訊息,以便有針對性地處理異常。

(2)、Error物件的型別

透過(1)中的name屬性我們可以查看到異常類型。在js中,有以下幾種常見異常類型:

TypeError      : 遇到意外的類型時引發,例如未宣告的變數等;
SyntaxError    : 解析js程式碼時其中的語法錯誤引發,例如服務端註冊腳步,少一個括號或引號等;
ReferenceError : 使用無效的引用時引發此異常;
EvalError      : 在錯誤的呼叫eval函數時引發;
RangeError     : 在一個數字型變數的值超出了其範圍時引發;
URIError       :  錯誤地使用encodeURI()或decodeURI()函數時引發。

在實際的開發中,針對不同類型的異常作出不同的異常處理,有利於我們有效地發現問題和提高使用者體驗。

希望本文所述對大家JavaScript程式設計有所幫助。

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板