2013-09-23 22 views
0

我編寫簡單的JavaScript分裂功能,做的異常處理 使用throwtry()catch()的問題是,與例外 的代碼不是在所有甚至提示未顯示工作簡單的異常引起的碼至無法工作

這裏是我的代碼

<html> 
    <head> 
     <title>JavaScript lab</title> 
     <meta charset="utf-8" /> 
     <script language="javascript"> 

      function div(a,b) { 
       if (b == 0) 
       throw { name: 'notallowed', message: 'div by zero' }; 
       var c = a/b; 
       alert(c); 
       } 
      } 

      try { 
       var x = prompt("Enter num1"); 
       var y = prompt("Enter num2"); 

       div(a,b); 
      } 
      catch(e) { 
       alert("Error: "+e.message); 
      } 

     </script> 
    </head> 
</html> 
+0

你錯過了一個{地方 - 或有額外}警報(c)之後 – BigMike

回答

1
//modify 
function div(a,b) { //function div(a,b) 
    if (b == 0){ 
    throw { name: 'notallowed', message: 'div by zero' }; 
    var c = a/b; 
    alert(c); 
    } 
} 


try { 
    var x = prompt("Enter num1"); 
    var y = prompt("Enter num2"); 

    //modify 
    div(x,y);//div(a,b); 
} 
catch(e) { 
    alert("Error: "+e.message); 
} 
+0

if(b == 0)仍然存在錯誤} – BigMike

2

可能,這可能是罰款

function div(a,b) { 
    if (b == 0){ 
     throw { name: 'notallowed', message: 'div by zero' }; 
    } 
    var c = a/b; 
    alert(c); 
} 
作品3210

你已經錯過了{if(b==0)

+0

檢查關於if的結論是什麼! – BigMike

+1

@BigMike更新了我的答案TQs –

+1

@BigMike這是一個和第二個錯誤,而不是x,y作爲參數在函數調用中,我傳遞a,b –

1

末這應該工作

 function div(a,b) { 
      if (b == 0) { 
      throw { name: 'notallowed', message: 'div by zero' }; 
      } 
      var c = a/b; 
      alert(c); 
     } 


     try { 
      var x = prompt("Enter num1"); 
      var y = prompt("Enter num2"); 

      div(x,y); 
     } 
     catch(e) { 
      alert("Error: "+e.message); 
     }