이미 있는 예외들을 재사용하면 좋은 점이 많다.
- 배우기 쉽고 사용하기 편리한 API를 만들 수 있다. 다른 프로그래머들도 친숙하고, 널리 퍼진 관습을 따르기 때문이다
- 가독성 높은 API가 될 수 있다. 잘 모르는 예외가 뒤섞여 있지 않기 떄문이다.
- 예외 클래스 개수를 줄이면 프로그램의 메모리 요구량이 줄어들고, 클래스를 로딩하는 시간도 줄어든다는 것
예외 |
용례 |
IllegalArgumentException |
null이 아닌 인자의 값이 잘못되었을 때 |
IllegalStateException |
객체 상태가 메서드 호출을 처리하기에 적절치 않을 때 |
NullPointerException |
null 값을 받으면 안 되는 인자에 null이 전달 되었을 때 |
IndexOutOfBoundsException |
인자로 주어진 첨자가 허용 범위를 벗어 났을 때 |
ConcurrentModificationException |
병렬적 사용이 금지된 객체에 대한 병렬 접근이 탐지 되었을 때 |
UnsupportedOperationException |
객체가 해당 메서드를 지원하지 않을 때 |
재사용 할 수 있는 예외라 생각된다면, 재사용하면 된다. 하지만 예외를 발생시키는 조건이 해당 예외의 문서에 기술 된 것과 일치해야 한다. 애매한 상황에 대한 예외처리를 해야 할 때, 어떤 예외를 재사용하면 좋을지 결정하는 것은 엄밀한 과학적 절차를 따르지 않는다.
'개발서적 > 이펙티브자바' 카테고리의 다른 글
[예외]규칙62.메서드에서 던져지는 모든 예외에 대해 문서를 남겨라 (0) | 2017.05.07 |
---|---|
[예외]규칙61. 추상화 수준에 맞는 예외를 던져라 (0) | 2017.05.07 |
[예외]규칙59. 불필요한 점검지정 예외 사용은 피하라 (0) | 2017.05.06 |
[예외]규칙58. 복구 가능 상태에는 점검지정 예외를 사용하고, 프로그래밍 오류에는 실행시점 예외를 이용하라 (0) | 2017.05.06 |
[예외]규칙57. 예외는 예외적 상황에만 사용하라 (0) | 2017.05.06 |