[java Anti Pattern Series] 15.emptytrycatch
January 29, 2025
빈 Catch 블록
- 빈 catch는 오류르 숨기고, 디버깅을 더 어렵게하고, 예기치 않은 동작을 유발하는 등 여러 가지 부정적인 결과를 초래할 수 있다.
문제 이유
1. 오류 은닉
- catch는 기본적으로 오류를 기록하거나 exception 메시지를 내보이는 식으로 작동하길 예상한다.
- 즉 책임이 있다.
2. 디버깅의 어려움
- stackTrace로 오류 이유를 알아야 하지만 빈 catch는 뭐가 잘못 됐는지 알 방법이 없어진다.
3. 자바에서 권장하는 오류 처리 미준수
- 결과적으로 오류 처리 모범 사례에도 위반된다.
- 예외 처리를 바로 하거나 빠르게 실패 처리를 하라는 원칙에 위배된다.
4. 예외 억제
5. 예측할 수 없는 동작으로 이어짐
처리 방법
- 예외 로그: slf4j 등으로 예외를 로깅한다.
- 예외 다시 던지기 : 경우에 따라 핸들링할 수 있는 에러로 다시 던지는 식으로 변경할 수도 있다.
- 예외 처리 : 아예 깔끔하게 그 안에서 처리하는게 가장 좋다.
- checked Exception 사용 : 아니면 로직 자체적으로 예외를 명시하여 사용자로 하여금 예외 처리까지 하도록 하는 방법이 있다.