首頁 > web前端 > js教程 > 主體

javascript 中的try catch實例詳解

零下一度
發布: 2017-04-18 11:03:24
原創
1659 人瀏覽過

這篇文章主要介紹了javascript 中的try catch應用總結的相關資料,需要的朋友可以參考下

javascript 中的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種:

  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 

    parameter #ReferenceError: raised when de-referencing an invalid reference 
  3. SyntaxError: raised when a syntax error occurs while parsing code in eval()#>




##4代碼! 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("异常信息");
登入後複製

手動拋出例外的方法如下:

  1. try {
     throw new Error("Whoops!");
    } catch (e) {
     alert(e.name + ": " + e.message);
    }
    登入後複製
  2. 如要判斷異常訊息的類型,可在catch中進行判斷:
  3. 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具有下列一些主要屬性:

  4. description: 錯誤描述(僅IE可用). 
  5. #fileName: 出錯的檔案名稱(僅Mozilla可用). 
  6. lineNumber: 出錯的行數(僅Mozilla可用). 

  7. #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()); // 使用本地格式显示当前时间 
}
登入後複製

以上是javascript 中的try catch實例詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!