You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在JavaScript计算器中实现try-catch捕获输入错误?

修复计算器无效表达式错误处理问题

你的计算器在输入6++、5+-3这类无效表达式时,无法正确返回错误提示,只需在执行eval的代码块外包裹try-catch语句,就能捕获语法错误并输出err。

修改后的完整代码如下:

let string = "";
let buttons = document.querySelectorAll('.button');
Array.from(buttons).forEach((button) => {
  button.addEventListener('click', (e) => {
    if (e.target.innerHTML == '=') {
      try {
        // 尝试执行表达式计算
        const result = eval(string);
        string = result.toString();
        document.querySelector('input').value = string;
      } catch (error) {
        // 捕获语法错误,设置错误提示
        string = 'err';
        document.querySelector('input').value = string;
      }
    } else if (e.target.innerHTML == 'C') {
      string = "";
      document.querySelector('input').value = string;
    } else {
      // 当前显示错误时,新输入直接重置内容
      if (string === 'err') {
        string = e.target.innerHTML;
      } else {
        string += e.target.innerHTML;
      }
      document.querySelector('input').value = string;
    }
  })
})

关键修改说明:

  • 给eval执行逻辑添加try-catch捕获语法错误,触发错误时将输入框内容设为err
  • 新增状态判断:当输入框显示err时,点击其他按钮会重置输入内容,避免错误状态延续
  • 修正C按钮的清空逻辑,将原空格改为空字符串,避免干扰后续表达式解析

内容的提问来源于stack exchange,提问作者Shreyansh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 22:15:27