Java ‐ 예외를 무시하지 말라[Effective Java Item 77] - thought-corner/Backend-PlayGround GitHub Wiki
예외를 무시해야 할 때도 있을까?
- 예외를 무시해야 할 때가 있을 수 있다.
try {
...
} catch (Exception e) {
// catch 블록을 비워두면 예외가 무시된다.
// catch 블록을 비워두면 예외가 존재할 이유가 없어진다.
}
1. 인터럽트 상태 변경 시(Thread.sleep)
- 특정 쓰레드를 잠시 멈추게 했다가 깨우는 로직에서 쓰레드가 종료되는 시점이라 더 이상 인터럽트 예외를 처리할 필요가 없을 때 무시하곤 한다.
2. 파싱 실패 시 기본값 반환
- 숫자 포맷이 잘못되었을 때 에러를 내는 대신, 무조건 기본값(예: 0)을 반환해야 하는 가벼운 유틸리티 로직일 때 사용한다.
그럼 예외를 어떻게 처리해야할까?
1. 최소한 로그라도 남겨라
- 정말로 무시해도 되는지 확신이 서지 않는다면, 비워두지 말고 최소한
log.warn()이나log.error()로 흔적을 남겨야 한다.
결론
- 예외는 반드시 처리하거나 처리하지 못하겠다면 상위 메서드로 던지거나, 정말 무시해야 한다면 ignored 변수명과 명확한 이유를 남긴다.