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

首頁 > 開發(fā) > JS > 正文

javascript 中的try catch應(yīng)用總結(jié)

2024-05-06 16:36:18
字體:
供稿:網(wǎng)友

javascript 中的try catch應(yīng)用總結(jié)

實(shí)例代碼:

<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來進(jìn)行異常處理。例如: 

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

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

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

上面的六種異常對(duì)象都繼承自Error對(duì)象。他們都支持以下兩種構(gòu)造方法:

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

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

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

如要判斷異常信息的類型,可在catch中進(jìn)行判斷:

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具有下面一些主要屬性:

  1. description: 錯(cuò)誤描述 (僅IE可用). 
  2. fileName: 出錯(cuò)的文件名 (僅Mozilla可用). 
  3. lineNumber: 出錯(cuò)的行數(shù) (僅Mozilla可用). 
  4. message: 錯(cuò)誤信息 (在IE下同description) 
  5. name: 錯(cuò)誤類型. 
  6. number: 錯(cuò)誤代碼 (僅IE可用). 
  7. stack: 像Java中的Stack Trace一樣的錯(cuò)誤堆棧信息 (僅Mozilla可用). 

因此為了更好的了解錯(cuò)誤信息我們可以將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命令事實(shí)上可以拋出任何對(duì)象,并且我們可以在catch接受到此對(duì)象。例如:

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

感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到JavaScript/Ajax教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 抚宁县| 左权县| 从江县| 新宾| 山西省| 岳阳市| 凭祥市| 江川县| 铜陵市| 五常市| 昭觉县| 阿坝县| 织金县| 汝南县| 永顺县| 乌兰浩特市| 乐亭县| 洪洞县| 平阴县| 鲜城| 谢通门县| 双城市| 岐山县| 商都县| 枞阳县| 印江| 历史| 玉田县| 习水县| 无极县| 诏安县| 竹山县| 石柱| 秀山| 东阿县| 平武县| 凤阳县| 宜宾市| 巩留县| 甘孜| 明溪县|