狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

JS技巧:JavaScript中try...catch和異常處理

admin
2010年8月18日 9:11 本文熱度 3718

在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  +
             " \nmessage:  "   +  e.message  +
             " \nlineNumber:  "   +  e.lineNumber  +
             " \nfileName:  "   +  e.fileName  +
             " \nstack:  "   +  e.stack);       
    }
      else    {                   
        alert(
             " name:  "   +  e.name  +    
             " \nerrorNumber:  "   +  (e.number  &   0xFFFF )  +
             " \nmessage:  "   +  e.message " );       
    }
}


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


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


該文章在 2010/8/18 9:11:53 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved