Java, Spring/Spring DB 1
5-3. 체크 예외 기본 이해
app0a
2022. 10. 10. 15:53
# 체크예외
- Exception과 그 하위예외는 모두 컴파일러가 체크하는 체크예외이다. 단 RuntimeException은 예외로한다.
- 체크예외는 잡아서 처리하거나, 또는 밖으로 던지도록 선언해야 한다. 그렇지 않으면 컴파일 오류가 발생한다.
내가 만든 MyCheckedException 은 체크예외이므로 call() 메서드에서 throw 시 받거나 밖으로 던져야한다.
따라서 아무 조치도 취하지 않으면 다음과 같이 컴파일오류가 난다.
Repository 에서 던진 체크예외를 Service에서 잡아주는 모습이다.
( 추가로, Slf4j 로 예외 로그 찍을때 마지막 파라미터로 예외를 넘겨주면 찍힌다. )
@Test 가 성공한다.
@Test 가 성공한다.
# 체크 예외의 장단점
체크예외는 예외를 잡아서 처리할 수 없을 때, 예외를 밖으로 던지는 throws 예외를 필수로 선언해야 한다. 그렇지 않으면 컴파일 오류가 발생
장점 : 개발자가 실수로 예외를 누락하지 않도록 컴파일오류를 발생시킨다. ( 최고의 오류 )
단점 : 개발자가 모든체크 예외를 반드시 잡거나 던지도록 처리해야 하기 때문에, 너무 번거로운일이 된다. 크게 신경쓰고 싶지 않은 예외까지 모두 챙겨야한다. 추가로 의존관계에 따른 단점도 있다.
꾸준히 다시보자.
1. 221014
2. 221101