-1

如果给定一个将数字作为用户输入并确定该数字是负数还是正数的javascript,在什么情况下你会抛出异常?

4

3 回答 3

2

你应该在特殊情况下抛出异常。如果您接受一个数字的输入(正数或负数),那么不符合标准的东西,比如字符串或对象,应该被认为是例外的。

例子:

// Assume the variable 'input' contains the value given by user...
if(typeof input != "number") {
    throw "Input is not number!"
}
else {
    // ... handle input normally here
}
于 2012-09-13T04:57:29.407 回答
0

答案取决于代码。

一个明显的功能是:

function isPosOrNeg(x) {
  return x < 0? 'negative' : 'positive';
}

很难看到抛出异常。可能有一个 ifx是一个不可解析的引用,但它不是(它是一个形式参数,因此实际上是一个声明的变量)。

<运算符使用抽象的关系比较算法,它不会引发错误,但它可能会undefined根据提供的值返回。

我根本不会抛出错误,因为undefined这是调用者可以处理的完全合理的响应。

如果你想测试参数,那么也许:

function isPosOrNeg(x) {

  if ( isNaN(Number(x))) {
    // throw an error
  }

  return x < 0? 'negative' : 'positive';
}

这样会isPosOrNeg('foo')引发错误,但isPosOrNeg('5')不会。

于 2012-09-13T05:03:52.940 回答
0

你可以试试这个:

   var inp="your input value";
   if(isNaN(inp)){
      return "Not a number";
    } else {
      if( inp > 0 ) {
          return 'positive number';
       } else if( inp < 0 ) {
          return 'negative number';
       } else {
          return 'number is zero';
       }
    }
于 2012-09-13T05:04:38.200 回答