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