개발 무지렁이

[Java] 종합보험 예외처리 본문

Backend/자바

[Java] 종합보험 예외처리

Gaejirang-e 2023. 4. 18. 20:35
⚠️ 예외처리는 Controller에서 ⚠️


🌝 checked exception
: 예외처리 필수, 컴파일에 오류발생

🌚 unchecked exception
: 컴파일은 되지만 실행 중에 발생하는 예외, RuntimeException

직접처리 시, catch를 여러개 작성할 때는 서브클래스부터 작성해야 한다


⚠️ try는 반드시 catch or finally와 함께 사용
  try {
      ...
  } catch(XxxException e) {
      e.printStackTrace();
      System.out.println(e.getMessage());
  } catch(XxxException e) {

  } catch(Exception e) {
      // 종합보험 예외처리
  } finally {
      // 예외발생여부와 상관없이 무조건 실행해야하는 코드(ex. 닫기(메모리에서 소멸))
  }
📌. e.printStackTrace();
: 예외메시지를 stack에 저장하고, 저장된 메시지를 꺼내서 출력해준다.

메서드를 호출한 주체에게 예외를 위임하는 것


throws (메서드 선언부 작성)

WHY?
(1) 예외를 몰아서 한 번에 처리하기 위해
(2) 메서드를 호출하는 주체가 직접 예외처리를 할 수 있도록 정보 제공

⚠️ main에서도 위임하면, JVM에게 던져지고 결국 예외처리는 안된다.


강제로 예외를 발생


throw (발생할 예외 객체);

(1) 반드시 예외처리할꺼니? => throw new Exception (2) 예외처리를 선택할꺼니? => throw new RunTimeException

사용자 정의 Exception


  class XxxException extends Exception { // Exception(체크) / RuntimeException(비체크)
      XxxException() {
          super("기본 message 작성");
      }
      XxxException(String message) {
          super(message);
      }
  }
Comments