如果给定一个将数字作为用户输入并确定该数字是负数还是正数的javascript,在什么情况下你会抛出异常?
问问题
2068 次
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 回答