Item 69 : 예외는 진짜 예외 상황에만 사용하라
2021. 9. 5. 18:39
//예외를 완전히 잘못 사용한 예
try {
int i = 0;
while(true)
range[i++].climb();
} catch (ArrayIndexOutOfBoundsException e) {
}
- 코드 자체가 직관적이지 못한다는 것 부터 잘못된 코드이다.
- 배열의 원소를 순회하는데 예외를 사용해 루프를 종료하고 있다. (도대체 왜?)
//위 코드의 관용구
for (Mountain m : range)
m.climb();
잘못된 이유
- 예외는 예외 상황에 쓸 용도로 설계되었음
- 코드를 try-catch 블록 안에 넣으면 JVM이 적용할 수 있는 최적화가 제한된다.
- 배열을 순회하는 표준 관용구는 앞서 걱정한 중복 검사를 수행하지 않는다. JVM이 최적화해줌
예외는 오직 예외 상황에서만 써야한다.
절대로 일상적인 제어 흐름용으로 쓰여선 안된다.
'책 > 이펙티브자바' 카테고리의 다른 글
Item 71 : 필요없는 검사 예외사용은 피하라 (0) | 2021.09.07 |
---|---|
Item 70 : 복구할 수 있는 상황에는 검사 예외를, 프로그래밍 오류에는 런타임 예외를 사용하라. (0) | 2021.09.07 |
Item 68 : 일반적으로 통용되는 명명 규칙을 따르라 (0) | 2021.09.04 |
Item 67 : 최적화는 신중히 하라 (0) | 2021.09.03 |
Item 66 : 네이티브 메소드는 신중히 사용하라 (0) | 2021.09.02 |