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

首頁 > 編程 > JavaScript > 正文

javascript中 try catch用法

2019-11-20 11:49:03
字體:
來源:轉載
供稿:網友

先看個實例

<input id='b1' type='button' value='按鈕'/><script>window.onload=function(){var oBtn=document.getElementById("b1");function mto(){alert("123");};try //非IE{oBtn.attachEvent("onclick",mto,false);}catch(e)//IE{oBtn.addEventListener("click",mto,false);}};</script>

注意的是:

addEventListener和attachEvent的區別在第一個參數 前者是click 后者是onclick

addEventListener 在其元素所在的元素作用域中運行

attachEvent在全局作用域中運行(this=window)

Try...Catch 語句

try...catch 可以測試代碼中的錯誤。try 部分包含需要運行的代碼,而 catch 部分包含錯誤發生時運行的代碼。
語法:

try{//在此運行代碼}catch(err){//在此處理錯誤}

注意:try...catch 使用小寫字母。大寫字母會出錯。

try...catch...finally    語句   
    
   為    JScript    實現錯誤處理。   

  try  {       tryStatements}    catch(exception){       catchStatements}    finally  {       finallyStatements}  

   =============   

參數   

   tryStatement    
   必選項??赡馨l生錯誤的語句。    
   exception    
   必選項。任何變量名。exception    的初始化值是扔出的錯誤的值。    
   catchStatement    
   可選項。處理在相關聯的    tryStatement    中發生的錯誤的語句。    
   finallyStatements    
   可選項。在所有其他過程發生之后無條件執行的語句。     

說明  

   try...catch...finally    語句提供了一種方法來處理可能發生在給定代碼塊中的某些或全部錯誤,同時仍保持代碼的運行。如果發生了程序員沒有處理的錯誤,JScript    只給用戶提供它的普通錯誤信息,就好象沒有錯誤處理一樣。   

tryStatements    參數包含可能發生錯誤的代碼,而    catchStatement    則包含處理任何發生了的錯誤的代碼。如果在    tryStatements    中發生了一個錯誤,則程序控制被傳給    catchStatements    來處理。exception    的初始化值是發生在    tryStatements    中的錯誤的值。如果錯誤不發生,則不執行    catchStatements。   

如果在與發生錯誤的    tryStatements    相關聯的    catchStatements    中不能處理該錯誤,則使用    throw    語句來傳播、或重新扔出這個錯誤給更高級的錯誤處理程序。   

在執行完    tryStatements    中的語句,并在    catchStatements    的所有錯誤處理發生之后,可無條件執行    finallyStatements    中的語句。   

請注意,即使在    try    或    catch    塊中返回一個語句,或在    catch    塊重新扔出一個錯誤,仍然會執行    finallyStatements    編碼。一般將確保    finallyStatments    的運行,除非存在未處理的錯誤。(例如,在    catch    塊中發生運行時錯誤。)。  

示例   

   下面的例子闡明了JScript    特例處理是如何進行的。   

  try  {      print("Outer  try  running..");      try  {        print("Nested  try  running...");        throw  "an  error";      }      catch(e)  {        print("Nested  catch  caught  "  +  e);        throw  e  +  "  re-thrown";      }      finally  {        print("Nested  finally  is  running...");      }       }    catch(e)  {      print("Outer  catch  caught  "  +  e);    }    finally  {      print("Outer  finally  running");    }    //  Windows  Script  Host  作出該修改從而得出  WScript.Echo(s)    function  print(s){       document.write(s);    }  

   將得出以下結果:   

   Outer    try    running..  
   Nested    try    running...  
   Nested    catch    caught    an    error  
   Nested    finally    is    running...  
   Outer    catch    caught    an    error    re-thrown  
   Outer    finally    running

如下是Javascript的例外處理的一個實例。

var array = null;try {  document.write(array[0]);} catch(err) {  document.writeln("Error name: " + err.name + "");  document.writeln("Error message: " + err.message);}finally{  alert("object is null");}

程序執行過程

1. array[0]的時候由于沒有創建array數組,array是個空對象,程序中調用array[0]就會產生object is null的異常
2. catch(err)語句捕獲到這個異常通過err.name打印了錯誤類型,err.message打印了錯誤的詳細信息.
3. finally類似于java的finally,無論有無異常都會執行.

現總結Error.name的六種值對應的信息:

1. EvalError:eval()的使用與定義不一致
2. RangeError:數值越界
3. ReferenceError:非法或不能識別的引用數值
4. SyntaxError:發生語法解析錯誤
5. TypeError:操作數類型錯誤
6. URIError:URI處理函數使用不當

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 区。| 泌阳县| 扶沟县| 宜兴市| 平乐县| 新泰市| 鲁山县| 西丰县| 云安县| 南宁市| 五指山市| 邢台市| 邢台县| 伊金霍洛旗| 石嘴山市| 布尔津县| 张北县| 曲靖市| 镇平县| 青浦区| 长寿区| 昭苏县| 怀集县| 靖西县| SHOW| 赤峰市| 常熟市| 乡宁县| 乌拉特后旗| 隆昌县| 南丹县| 宿松县| 莲花县| 湖州市| 宾川县| 潼南县| 开阳县| 清河县| 伊吾县| 伊通| 峨眉山市|