如何在JavaScript中编写处理非数字输入错误的函数?
错误处理实现方案
实现步骤
- 在
sum函数内完成参数有效性检查与计算结果校验,不符合要求时主动抛出错误 - 用
try/catch块包裹函数调用逻辑,捕获并处理抛出的错误
修改后的完整代码
function sum(a, b) { // 检查参数是否为有效数字(排除NaN、Infinity等无效情况) if (!Number.isFinite(a) || !Number.isFinite(b)) { throw new Error("error, input is not a number"); } const result = a + b; // 检查计算结果是否为有效数字 if (!Number.isFinite(result)) { throw new Error("error, input is not a number"); } return result; } try { let total = sum(4, 4); // 验证结果是否为8(匹配需求中的判断逻辑) if (total !== 8) { throw new Error("error, input is not a number"); } console.log(total); } catch (err) { console.error(err.message); }
代码说明
Number.isFinite():精准判断值是否为有限的有效数字,可排除NaN、Infinity、非数字类型等无效输入- 函数内先校验参数合法性,再校验计算结果,确保每一步逻辑的有效性
try块执行函数调用与结果校验,一旦触发错误会立即进入catch块处理错误信息- 额外添加结果等于8的判断逻辑,完全匹配需求中的要求
内容的提问来源于stack exchange,提问作者Jundu
相关产品推荐
相关产品推荐

