0

我编写了简单的Javascript除法函数并使用 进行异常处理,throw问题是带有异常的代码根本不起作用,甚至没有显示提示try()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>
4

3 回答 3

2

可能这可以正常工作

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

{在末尾错过了一个if(b==0)

于 2013-09-23T09:30:49.290 回答
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);
}
于 2013-09-23T09:31:58.200 回答
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);
        }
于 2013-09-23T09:32:08.340 回答