728x90
- WAS에서 예외를 처리하지 못하는 경우 : main() 과 달리 사용자에게 개발자가 지정한, 오류 페이지를 보여준다.
1. 체크 예외 활용
- 2가지
- 언체크(런타임 예외를 사용)
- 비즈니스 로직상 의도적으로 던지는 예외에만 사용
- 계좌 이체 실패 예외
- 결제시 포인트 부족 예외
- 로그인 ID, PW 불일치 예외
- 현실
- throws 예외의 경우 service logic에서 처리하지 못하는 것이 대부분이다.
- 그렇지만 throws를 계속 날려줘야하므로 불편하고 의존성 문제가 발생한다. - rumtime예외를 권장하는 이유
- 해당 예외들은 보통 서블릿의 오류 페이지나, 스프링 MVC가 제공하는 controllerAdive에서 예외를 공통으로 처리 한다.
- 해결 불가한 공통 예외는 별도의 오류 로그를 남기고, 개발자가 오류를 빨리 인지할 수 있도록 메일, 알림등을 통해서 전달 받아야 한다.
2. 런타임 예외 활용
- SQLException과 같은 경우에는 예외 전환이 가능하다.
- 기존 예외를 포함해줘야 예외 출력시 스택 트레이스에서 기존 예외도 함께 확인이 가능하다.
- 의무적으로 throws를 날리지 않아도 되므로 실수를 방지하기 위해 문서화 작업이 중요하다.