我将如何使用 javascript 在计算器中抛出错误?自定义错误不是默认错误?使用异常处理

Sha*_*han 5 html javascript css

当用户输入错误的输入时,自定义错误将生成并显示错误(您输入了错误的输入)。我创建了默认错误,但没有创建自定义错误。我需要。我需要自定义错误。任何人都可以帮助我

var Scrn = document.querySelector('#screen');
var maibox = document.querySelector('.calBox');
var exp = '';
var errro_btn = document.querySelector('#error_screen');
var close = document.querySelector('#close')

maibox.addEventListener('click', (e) => {
  let vlu = e.target.value;

  if (vlu) {
    if (vlu != 'undefined') {
      if (vlu == '=') {
        try {


          exp = eval(exp)
          Scrn.innerHTML = exp
        } catch (error) {

          errro_btn.innerHTML += error.message
          errro_btn.style.display = "block"

        }
      } else if (vlu == 'ac') {
        Scrn.innerHTML = '0'
        exp = ''
      } else if (vlu == 'OFF') {
        Scrn.innerHTML = ''
        exp = ''
      } else if (vlu == 'undefined') {
        exp = '='
        Scrn.innerHTML = '0'
      } else if (vlu == '?') {
        exp = Math.sqrt(exp)
        Scrn.innerHTML += vlu
      } else if (vlu == '^') {
        exp = Math.pow(exp)
        Scrn.innerHTML = vlu
      } else if (vlu == 'sin') {
        exp = Math.sin(exp)
        Scrn.innerHTML = vlu
      } else if (vlu == 'cos') {
        exp = Math.cos(exp)
        Scrn.innerHTML = vlu
      } else if (vlu == 'tan') {
        exp = Math.tan(exp)
        Scrn.innerHTML = vlu
      } else {

        exp += vlu
        Scrn.innerHTML = exp
      }
    }
  }
})

errro_btn.addEventListener('click', (e) => {

  if (e.target.id === "close") {
    errro_btn.style.display = "none";
  }
})
Run Code Online (Sandbox Code Playgroud)
.calBox{
  position: relative;
  width: 400px;
  padding: 20px;
  margin: 100px auto;
  background-image: linear-gradient(135deg, #767676,#767676,#767676, #aaa);
  border: 1px solid #aaa;
  box-shadow: 0 0 3px 4px #8e8888	;
}
span{
  position: relative;
  display: block;
  width: 380px;
  height: 38px;
  padding: 5px 10px;
  background: #bdcbbd;
  margin-bottom: 30px;
  margin-top: 4px;
  font-size: 34px;
}
#error_screen{
  position: relative;
  display: none;
  width: 380px;
  height: 34px;
  color: #D8000C;
  padding: 5px 10px;
  background: #FFBABA;
  margin-bottom: 10px;
  margin-top: 0px;
  font-size: 16px;	
}

#close{
  padding:1px 5px 4px;
  font-size: 15px;
  box-shadow: none;
  color: #ffbaba;
  float: right;
  border: none;
  margin: 0;
  border-radius: 50%;
  background: #D8000C;
}
#close:focus{
  outline: none;
}

.buttons{
  margin-top: 40px;
}
#ac{
  background: #4D8C50;
  float: right;
  padding: 10px 18px !important;
}
#oFF{
  padding: 10px 12px !important;
  background: #4D8C50;
}
#ans{
  background: #4D8C50;
}
button{
  padding: 10px 22px;
  margin: 10px;
  font-size: 20px;
  box-shadow: 0 0 8px 2px #9c9a9a;
  background: #454545;
  color: #fff;
  border: none;
  border-radius: 6px;
}
Run Code Online (Sandbox Code Playgroud)
<div class="calBox">

  <span id="screen">0</span>
  <span id="error_screen">
    <button id="close">x</button>
  </span>
  <hr>

  <button id="7" value='7'>7</button>
  <button id="8" value='8'>8</button>
  <button id="9" value='9'>9</button>
  <button id="ac" value='ac'>ac</button>
  <button id="oFF" value='OFF'>OFF</button>
  <button id="4" value='4'>4</button>
  <button id="5" value='5'>5</button>
  <button id="6" value='6'>6</button>
  <button id="del" value='del'>del</button>
  <button id="1" value='1'>1</button>
  <button id="2" value='2'>2</button>
  <button id="3" value='3'>3</button>
  <button id="+" value='+'>+</button>
  <button id="/" value='/'>/</button>
  <button id="0" value='0'>0</button>
  <button id="*" value='*'>x</button>
  <button id="." value='.'>.</button>
  <button id="-" value='-'>-</button>
  <button id="?" value='?'>?</button>

  <button id="sin" value='sin'>sin</button>
  <button id="cos" value='cos'>cos</button>
  <button id="tan" value='tan'>tan</button>
  <button id="ans" value='='>=</button>
</div>
Run Code Online (Sandbox Code Playgroud)

Vik*_*ngh 1

您当前的代码是:

\n\n
errro_btn.innerHTML+= error.message\n
Run Code Online (Sandbox Code Playgroud)\n\n

将其更改为:

\n\n
errro_btn.innerHTML+= "Your custom error message here"\n
Run Code Online (Sandbox Code Playgroud)\n\n

以下是工作代码片段:\n

\r\n
\r\n
errro_btn.innerHTML+= error.message\n
Run Code Online (Sandbox Code Playgroud)\r\n
errro_btn.innerHTML+= "Your custom error message here"\n
Run Code Online (Sandbox Code Playgroud)\r\n
var Scrn =document.querySelector(\'#screen\');\r\nvar maibox = document.querySelector(\'.calBox\');\r\nvar exp = \'\';\r\nvar errro_btn = document.querySelector(\'#error_screen\');\r\nvar close = document.querySelector(\'#close\')\r\n\r\nmaibox.addEventListener(\'click\',(e)=>{\r\n\tlet vlu = e.target.value;\r\n\r\n\tif (vlu) {\r\n\t\tif (vlu != \'undefined\'){\r\n\t\t\tif (vlu == \'=\') {\r\n\t\t\t\ttry{\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\texp=eval(exp)\r\n\t\t\t\t\tScrn.innerHTML=exp\r\n\t\t\t\t}\r\n\t\t\t\tcatch(error){\r\n\r\n\t\t\t\t\terrro_btn.innerHTML+= "Your custom error message"\r\n\t\t\t\t\terrro_btn.style.display="block"\r\n\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse if(vlu==\'ac\'){\r\n\t\t\t\tScrn.innerHTML=\'0\'\r\n\t\t\t\texp=\'\'\r\n\t\t\t}\r\n\t\t\telse if(vlu==\'OFF\'){\r\n\t\t\t\tScrn.innerHTML=\'\'\r\n\t\t\t\texp=\'\'\r\n\t\t\t}\r\n\t\t\telse if (vlu==\'undefined\'){\r\n\t\t\t\texp=\'=\'\r\n\t\t\t\tScrn.innerHTML=\'0\'\r\n\t\t\t}\r\n\t\t\telse if(vlu==\'\xe2\x88\x9a\'){\r\n\t\t\t\texp=Math.sqrt(exp)\r\n\t\t\t\tScrn.innerHTML+=vlu\r\n\t\t\t}\r\n\t\t\telse if(vlu==\'^\'){\r\n\t\t\t\texp=Math.pow(exp)\r\n\t\t\t\tScrn.innerHTML=vlu\r\n\t\t\t}\r\n\t\t\telse if(vlu==\'sin\'){\r\n\t\t\t\texp=Math.sin(exp)\r\n\t\t\t\tScrn.innerHTML=vlu\r\n\t\t\t}\r\n\t\t\telse if(vlu==\'cos\'){\r\n\t\t\t\texp=Math.cos(exp)\r\n\t\t\t\tScrn.innerHTML=vlu\r\n\t\t\t}\r\n\t\t\telse if(vlu==\'tan\'){\r\n\t\t\t\texp=Math.tan(exp)\r\n\t\t\t\tScrn.innerHTML=vlu\r\n\t\t\t}\r\n\t\t\telse{\r\n\r\n\t\t\t\texp+=vlu\r\n\t\t\t\tScrn.innerHTML=exp\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n})\r\n\r\nerrro_btn.addEventListener(\'click\', (e)=>{\r\n\r\n\tif (e.target.id=== "close") {\r\n        errro_btn.style.display = "none";\r\n    } \r\n})
Run Code Online (Sandbox Code Playgroud)\r\n
\r\n
\r\n

\n