我正在构建一个小项目,使用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
。如果你愿意,你可以改变这个。