본문 바로가기

카테고리 없음

#4 Exception 예외처리

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