【发布时间】:2019-12-10 18:22:10
【问题描述】:
我写了一个简单的函数来检查传递的参数是0、正数还是负数。我知道传递的参数是一个数字而不是任何其他数据类型。我得到 undefined 作为输出,而我希望在传递的参数是零或负数的情况下打印 throw 语句中提供的文本。
我已经检查了Throw statement in JavaScript gives "undefined undefined" output 的问题, 这并不能解决我的问题。
-
我还尝试定义一个错误对象,如下所示:
ZeroError = new Error ("Zero Error"); NegativeError = new Error ("Negative Error");
然后将这些错误用作“抛出”的参数:
throw ZeroError;
throw NegativeError;
对于零值和负值,我得到相同的 undefined 输出。
这是我的功能:
function isPositive(a)
{
if (a === 0) throw "Zero Error";
if (a < 0) throw "Negative Error";
if (a > 0) return ("YES");
}
当 a > 0 时我得到“YES”作为输出,我得到 undefined
当 a 为零或负数时。当 a 为零时,我期望“零错误”,当 a 为负数时,我期望“负错误”。
【问题讨论】:
-
你在哪里打电话
isPositive?你从哪里得到你描述的输出,你在某处记录一些东西吗? -
可能你正在使用
let?? -
有点跑题了,但请注意,您通常应该是
throwing 错误对象而不是字符串(如throw new Error('Zero Error')) -
@jlaitio:我也试过了,但我得到了“未定义”。
标签: javascript undefined throw