빈 Catch 블록

  • 빈 catch는 오류르 숨기고, 디버깅을 더 어렵게하고, 예기치 않은 동작을 유발하는 등 여러 가지 부정적인 결과를 초래할 수 있다.

문제 이유

1. 오류 은닉

  • catch는 기본적으로 오류를 기록하거나 exception 메시지를 내보이는 식으로 작동하길 예상한다.
  • 즉 책임이 있다.

    2. 디버깅의 어려움

  • stackTrace로 오류 이유를 알아야 하지만 빈 catch는 뭐가 잘못 됐는지 알 방법이 없어진다.

    3. 자바에서 권장하는 오류 처리 미준수

  • 결과적으로 오류 처리 모범 사례에도 위반된다.
  • 예외 처리를 바로 하거나 빠르게 실패 처리를 하라는 원칙에 위배된다.

    4. 예외 억제

    5. 예측할 수 없는 동작으로 이어짐

처리 방법

  1. 예외 로그: slf4j 등으로 예외를 로깅한다.
  2. 예외 다시 던지기 : 경우에 따라 핸들링할 수 있는 에러로 다시 던지는 식으로 변경할 수도 있다.
  3. 예외 처리 : 아예 깔끔하게 그 안에서 처리하는게 가장 좋다.
  4. checked Exception 사용 : 아니면 로직 자체적으로 예외를 명시하여 사용자로 하여금 예외 처리까지 하도록 하는 방법이 있다.