Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How will I throw error in calculator using javascript? custom error not default errors?using exceptional handling

When user type wrong input than the custom error will generate and show error (you have typed wrong input)..I have create default error but not custom error.I need. I need custom error.Anyone help me

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";
  }
})
.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;
}
<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>
like image 285
Shahab Khan Avatar asked Oct 29 '22 15:10

Shahab Khan


1 Answers

Your current code is:

errro_btn.innerHTML+= error.message

Change this to:

errro_btn.innerHTML+= "Your custom error message here"

Below is working code snippet:

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+= "Your custom 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";
    } 
})
.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;
}
<!DOCTYPE html>
<html>
<head>
	<title>calculator</title>
</head>
<link rel="stylesheet" type="text/css" href="style.css">
<body>

	<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>



<script type="text/javascript" src="app.js"></script>
</body>
</html>
like image 86
Vikasdeep Singh Avatar answered Nov 02 '22 11:11

Vikasdeep Singh