public double calculate(int firstNum, int secondNum, char sign){
result=0;
switch (sign){
case '+'-> result = firstNum + secondNum;
case '-'-> result = firstNum - secondNum;
case '*'-> result = firstNum * secondNum;
case '/'-> result = firstNum / secondNum; //throw ArtithmeticException
case '%'-> result = firstNum % secondNum;
default-> throw new CalException();
}
stackInt.push(result);
return result;
}
switch문 안에서 연산자가 위와 같은 예시(+,-,*,/,%)와 다른 값이 들어오거나 나누기 0을 했을 때
발생되는 예외를 원하는 방식으로 처리하는 방법
1. 예외를 발생시킨다(위와 같은 예시가 아닌 다른 값을 넣어서..)
2. 그럼 터미널에 어떤 예외가 발생했는지 보인다(ex. ArithmethicException)
3. 예외가 생길 수 있는 문장을 try{}로 감싸준다
4. catch(오류종류 e){}로 해당 예외를 처리해준다
public double calculate(int firstNum, int secondNum, char sign){
result=0;
try {
switch (sign) {
case '+'-> result = firstNum + secondNum;
case '-'-> result = firstNum - secondNum;
case '*'-> result = firstNum * secondNum;
case '/'-> result = firstNum / secondNum; //throw ArtithmeticException
case '%'-> result = firstNum % secondNum;
default-> throw new CalException();
}
}catch (ArithmeticException e){
System.out.println(e.getMessage());
}catch (CalException e){
System.out.println(e.getMessage());
}
stackInt.push(result);
return result;
}