欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

javascript中 try catch用法

 更新時(shí)間:2015年08月16日 11:50:02   投稿:hebedich  
JS try catch語(yǔ)句一般在什么情況下使用?是必須使用的嗎?下面就讓小編來(lái)給大家介紹一下試用心得。

先看個(gè)實(shí)例

<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的區(qū)別在第一個(gè)參數(shù) 前者是click 后者是onclick

addEventListener 在其元素所在的元素作用域中運(yùn)行

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

Try...Catch 語(yǔ)句

try...catch 可以測(cè)試代碼中的錯(cuò)誤。try 部分包含需要運(yùn)行的代碼,而 catch 部分包含錯(cuò)誤發(fā)生時(shí)運(yùn)行的代碼。
語(yǔ)法:

try
{
//在此運(yùn)行代碼
}
catch(err)
{
//在此處理錯(cuò)誤
}

注意:try...catch 使用小寫(xiě)字母。大寫(xiě)字母會(huì)出錯(cuò)。

try...catch...finally    語(yǔ)句   
    
   為    JScript    實(shí)現(xiàn)錯(cuò)誤處理。   

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

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

參數(shù)   

   tryStatement    
   必選項(xiàng)??赡馨l(fā)生錯(cuò)誤的語(yǔ)句。    
   exception    
   必選項(xiàng)。任何變量名。exception    的初始化值是扔出的錯(cuò)誤的值。    
   catchStatement    
   可選項(xiàng)。處理在相關(guān)聯(lián)的    tryStatement    中發(fā)生的錯(cuò)誤的語(yǔ)句。    
   finallyStatements    
   可選項(xiàng)。在所有其他過(guò)程發(fā)生之后無(wú)條件執(zhí)行的語(yǔ)句。     

說(shuō)明  

   try...catch...finally    語(yǔ)句提供了一種方法來(lái)處理可能發(fā)生在給定代碼塊中的某些或全部錯(cuò)誤,同時(shí)仍保持代碼的運(yùn)行。如果發(fā)生了程序員沒(méi)有處理的錯(cuò)誤,JScript    只給用戶(hù)提供它的普通錯(cuò)誤信息,就好象沒(méi)有錯(cuò)誤處理一樣。   

tryStatements    參數(shù)包含可能發(fā)生錯(cuò)誤的代碼,而    catchStatement    則包含處理任何發(fā)生了的錯(cuò)誤的代碼。如果在    tryStatements    中發(fā)生了一個(gè)錯(cuò)誤,則程序控制被傳給    catchStatements    來(lái)處理。exception    的初始化值是發(fā)生在    tryStatements    中的錯(cuò)誤的值。如果錯(cuò)誤不發(fā)生,則不執(zhí)行    catchStatements。   

如果在與發(fā)生錯(cuò)誤的    tryStatements    相關(guān)聯(lián)的    catchStatements    中不能處理該錯(cuò)誤,則使用    throw    語(yǔ)句來(lái)傳播、或重新扔出這個(gè)錯(cuò)誤給更高級(jí)的錯(cuò)誤處理程序。   

在執(zhí)行完    tryStatements    中的語(yǔ)句,并在    catchStatements    的所有錯(cuò)誤處理發(fā)生之后,可無(wú)條件執(zhí)行    finallyStatements    中的語(yǔ)句。   

請(qǐng)注意,即使在    try    或    catch    塊中返回一個(gè)語(yǔ)句,或在    catch    塊重新扔出一個(gè)錯(cuò)誤,仍然會(huì)執(zhí)行    finallyStatements    編碼。一般將確保    finallyStatments    的運(yùn)行,除非存在未處理的錯(cuò)誤。(例如,在    catch    塊中發(fā)生運(yùn)行時(shí)錯(cuò)誤。)。  

示例   

   下面的例子闡明了JScript    特例處理是如何進(jìn)行的。   

  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);  
  }  

   將得出以下結(jié)果:   

   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的例外處理的一個(gè)實(shí)例。

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");
}

程序執(zhí)行過(guò)程

1. array[0]的時(shí)候由于沒(méi)有創(chuàng)建array數(shù)組,array是個(gè)空對(duì)象,程序中調(diào)用array[0]就會(huì)產(chǎn)生object is null的異常
2. catch(err)語(yǔ)句捕獲到這個(gè)異常通過(guò)err.name打印了錯(cuò)誤類(lèi)型,err.message打印了錯(cuò)誤的詳細(xì)信息.
3. finally類(lèi)似于java的finally,無(wú)論有無(wú)異常都會(huì)執(zhí)行.

現(xiàn)總結(jié)Error.name的六種值對(duì)應(yīng)的信息:

1. EvalError:eval()的使用與定義不一致
2. RangeError:數(shù)值越界
3. ReferenceError:非法或不能識(shí)別的引用數(shù)值
4. SyntaxError:發(fā)生語(yǔ)法解析錯(cuò)誤
5. TypeError:操作數(shù)類(lèi)型錯(cuò)誤
6. URIError:URI處理函數(shù)使用不當(dāng)

相關(guān)文章

最新評(píng)論