[Item 77] 예외를 무시하지 말라
2022. 9. 26. 01:05ㆍJAVA/Effective Java
예외 명시
- API 설계자가 메서드 선언에 예외를 명시하는 까닭은, 그 메서드를 사용할 때 적절한 조치를 취해달라고 말하는 것이다.
- 예외는 문제 상황에 잘 대처하기 위해 존재하는데 catch 블록을 비워두면 예외가 존재할 이유가 없어진다. (catch 블록을 비워두면 예외가 무시된다.)
예외의 무시
- 예외를 무시하기로 했다면 catch 블록 안에 그렇기 결정한 이유를 주석으로 남기고 예외 변수의 이름도 ignored로 바꿔놓도록 하자.
try {
numColors = f.get(1L, TimeUnit.SECONDS);
} catch (TimeoutException | ExecutionException ignored) {
...
}
예외를 무시하지 않고 바깥으로만 전파하게 놔둬도 최소한 디버깅 정보를 남긴 채 프로그램이 신속히 중단되게는 할 수 있다.
핵심정리
- 예외는 문제 상황에 잘 대처하기 위해 존재하는데 catch 블록을 비워두면 예외가 존재할 이유가 없어진다.
- 예외를 무시하기로 했다면 catch 블록 안에 그렇기 결정한 이유를 주석으로 남기고 예외 변수의 이름도 ignored로 바꿔놓도록 하자.
참고자료
이펙티브 자바 3/E - 교보문고
프로그래밍인사이트 | 자바 6 출시 직후 출간된 『이펙티브 자바 2판』 이후로 자바는 커다란 변화를 겪었다. 그래서 졸트상에 빛나는 이 책도 자바 언어와 라이브러리의 최신 기능을 십분 활용
www.kyobobook.co.kr
'JAVA > Effective Java' 카테고리의 다른 글
[Item 78] 공유 중인 가변 데이터는 동기화해 사용하라 (0) | 2022.09.26 |
---|---|
[Item 76] 가능한 한 실패 원자적으로 만들라 (0) | 2022.09.26 |
[Item 75] 예외의 상세 메시지에 실패 관련 정보를 담으라 (0) | 2022.09.25 |
[Item 74] 메서드가 던지는 모든 예외를 문서화하라 (0) | 2022.08.28 |
[Item 73] 추상화 수준에 맞는 예외를 던지라 (0) | 2022.08.28 |