显示 "Syntax Error" 如果 eval() 无法计算给定的字符串



我正在构建一个小项目,使用HTML、CSS和;Javascript。我正在使用eval函数。我想像真正的计算器一样拥有数学错误

语法错误

var a = "2+2";
alert(eval(a));

它显示了正确的答案:4。但如果我这样做:

var a = "2++2";
alert(eval(a));
或者这个:

document.write(eval(a));

则eval函数不执行,并且在屏幕上不显示任何内容。它在控制台上显示了这一点。

未捕获语法错误:后缀中的左侧表达式无效操作

但我希望它只显示一个";语法错误";在屏幕上。

使用try/catch块捕获eval抛出的异常,并在错误对象上使用.name仅打印其类名。在这种情况下,它是SyntaxError

var a = "2++2";
try {
alert(eval(a));
} catch (e) {
console.error(e.name);
}
您还可以对不同的错误(以及自定义错误消息(进行自定义处理,只需检查e.name并打印您想要的任何内容。

注意,console.error打印到stderr,而不是从console.log打印到通常的stdout。如果你愿意,你可以改变这个。

相关内容

  • 没有找到相关文章

最新更新