如何解决如果 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 函数不会被执行,屏幕上也不会显示任何内容。 它会在控制台上显示这一点。
未捕获的语法错误:后缀中的左侧表达式无效 操作
但我希望它在屏幕上只显示“语法错误”。
解决方法
使用 externals: {
'vue': 'Vue','vue-router': 'VueRouter','vuex': 'Vuex','axios': 'axios',},
块捕获 try/catch
抛出的异常,并在错误对象上使用 .name
仅打印其类名。在这种情况下,它是 eval
。
SyntaxError
var a = "2++2";
try {
alert(eval(a));
} catch (e) {
console.error(e.name);
}
并打印您想要的任何内容来对不同的错误(以及自定义错误消息)进行自定义处理。
请注意,e.name
会打印到 console.error
,而不是通常的 stderr
中的 stdout
。如果需要,您可以更改此设置。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。