framework/spring

5. 자바 예외 이해

wooweee 2023. 9. 23. 19:08
728x90
  • WAS에서 예외를 처리하지 못하는 경우 : main() 과 달리 사용자에게 개발자가 지정한, 오류 페이지를 보여준다.

 

1. 체크 예외 활용

  • 2가지
    1. 언체크(런타임 예외를 사용)
    2. 비즈니스 로직상 의도적으로 던지는 예외에만 사용
      • 계좌 이체 실패 예외
      • 결제시 포인트 부족 예외
      • 로그인 ID, PW 불일치 예외
  • 현실
    • throws 예외의 경우 service logic에서 처리하지 못하는 것이 대부분이다.
    • 그렇지만 throws를 계속 날려줘야하므로 불편하고 의존성 문제가 발생한다. - rumtime예외를 권장하는 이유
    • 해당 예외들은 보통 서블릿의 오류 페이지나, 스프링 MVC가 제공하는 controllerAdive에서 예외를 공통으로 처리 한다.
    • 해결 불가한 공통 예외는 별도의 오류 로그를 남기고, 개발자가 오류를 빨리 인지할 수 있도록 메일, 알림등을 통해서 전달 받아야 한다.

 

2. 런타임 예외 활용

  • SQLException과 같은 경우에는 예외 전환이 가능하다.
  • 기존 예외를 포함해줘야 예외 출력시 스택 트레이스에서 기존 예외도 함께 확인이 가능하다.
  • 의무적으로 throws를 날리지 않아도 되므로 실수를 방지하기 위해 문서화 작업이 중요하다.