<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    軟件是對質量的不懈追求

    JS try.....catch的使用

    <script language="javascript">
    try
    {
    throw new Error(10,"asdasdasd")
    }
    catch (e)
    {
    alert(e.message);
    alert(e.description)
    alert(e.number)
    alert(e.name)
    throw new Error(10,"asdasdasd")
    }

    </script>  

    在JavaScript可以使用try...catch來進行異常處理。例如:  

     

    try {
    foo.bar();
    } catch (e) {
    alert(e.name + ": " + e.message);
    }

    目前我們可能得到的系統異常主要包含以下6種:

    • EvalError: raised when an error occurs executing code in eval()  
    • RangeError: raised when a numeric variable or parameter is outside of its valid range  
    • ReferenceError: raised when de-referencing an invalid reference  
    • SyntaxError: raised when a syntax error occurs while parsing code in eval()  
    • TypeError: raised when a variable or parameter is not a valid type  
    • URIError: raised when encodeURI() or decodeURI() are passed invalid parameters  

    上面的六種異常對象都繼承自Error對象。他們都支持以下兩種構造方法:

     

    new Error();
    new Error("異常信息");

    手工拋出異常的方法如下:

     

    try {
    throw new Error("Whoops!");
    } catch (e) {
    alert(e.name + ": " + e.message);
    }

    如要判斷異常信息的類型,可在catch中進行判斷:

     

    try {
    foo.bar();
    } catch (e) {
    if (e instanceof EvalError) {
       alert(e.name + ":" + e.message);
    }
    else if (e instanceof RangeError) {
       alert(e.name + ": " + e.message);
    }
    // etc
    }

    Error具有下面一些主要屬性:

    • description: 錯誤描述 (僅IE可用).  
    • fileName: 出錯的文件名 (僅Mozilla可用).  
    • lineNumber: 出錯的行數 (僅Mozilla可用).  
    • message: 錯誤信息 (在IE下同description)  
    • name: 錯誤類型.  
    • number: 錯誤代碼 (僅IE可用).  
    • stack: 像Java中的Stack Trace一樣的錯誤堆棧信息 (僅Mozilla可用).  

    因此為了更好的了解錯誤信息我們可以將catch部分改為如下形式:  

     

    try {
    foo.bar();
    } catch (e) {
    if (browserType != BROWSER_IE) {                            
       alert("name: " + e.name +
        "message: " + e.message +
        "lineNumber: " + e.lineNumber +
        "fileName: " + e.fileName +
        "stack: " + e.stack);        
    }
    else {                    
       alert("name: " + e.name +     
        "errorNumber: " + (e.number & 0xFFFF ) +
        "message: " + e.message");        
    }
    }

    JavaScript中的throw命令事實上可以拋出任何對象,并且我們可以在catch接受到此對象。例 如:

     

    try {
    throw new Date(); // 拋出當前時間對象
    } catch (e) {
    alert(e.toLocaleString()); // 使用本地格式顯示當前時間
    }

    posted on 2010-06-02 10:38 BlakeSu 閱讀(330) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 国偷自产一区二区免费视频| 伊人免费在线观看| 亚洲最大在线观看| 亚洲三级电影网址| 亚洲第一极品精品无码久久| 国产免费AV片无码永久免费| 久久综合AV免费观看| 免费无码又爽又刺激高潮视频| 九九免费久久这里有精品23| 亚洲中文字幕久久精品蜜桃| 亚洲中文字幕人成乱码| 91亚洲视频在线观看| 亚洲成a人片77777群色| 337p日本欧洲亚洲大胆精品555588| 亚洲人成网站在线播放vr| 亚洲精品蜜桃久久久久久| 久久久久无码精品亚洲日韩| 亚洲最大福利视频网站| 亚洲а∨天堂久久精品9966 | 亚洲午夜精品一区二区麻豆 | 五月天婷亚洲天综合网精品偷| 特级淫片国产免费高清视频| 亚洲第一成人影院| 久久夜色精品国产亚洲AV动态图| 亚洲理论片在线中文字幕| 国产成人亚洲综合网站不卡| 一级毛片大全免费播放下载| 精品国产污污免费网站| 一个人看的www在线观看免费| 日本免费无遮挡吸乳视频电影| 亚洲色婷婷六月亚洲婷婷6月| 亚洲第一成年男人的天堂| 亚洲AV无码一区二区三区久久精品 | 精品亚洲一区二区三区在线播放| 国产亚洲婷婷香蕉久久精品| ass亚洲**毛茸茸pics| 中文无码日韩欧免费视频| 妞干网免费视频观看| 91天堂素人精品系列全集亚洲| 国产精品免费久久久久久久久 | 亚洲免费在线视频|