잘못된 예외 사용
try {
int i = 0;
while(true)
range[i++].climb();
} catch (ArrayIndexOutOfBoundsException e) {
}
이러한 코드의 가장 큰 문제는 우선 무엇을 나타내는 코드인지 알 수 없음
for(Mountain m : range) {
m.climb();
}
만약 다음과 같이 일반적인 관용구로 작성한 코드는 훨씬 명확함
첫번째와 같은 예외 코드를 작성한 이유는 성능을 높이기 위해서 작성됨
만약 첫번째 예시에서 의도치 않은 곳에서 ArrayIndexOutOfBoundsException이 발생할 경우
프로그램은 종료되지 않고 계속 수행될 것이고, 이는 다른 곳에 영향을 주어 잘못 동작할 수 있음
예외를 예외 상황에서만 사용해야 한다. 예외를 제어 흐름에 사용하는 것은
이를 더 일반화하자면 표준적이고 쉽게 이해되는 관용구를 사용하고, 어줍잖은 기법들을 자제해야 함