개요 try { int i = 0; while(true) range[i++].climb(); } catch (ArrayIndexOutOfBoundsException e) { } 위의 코드는 배열의 원소를 끔찍한 방식으로 순회하고 있는 코드이다. 무한루프를 돌며 순회하다가, 배열의 끝에 도달해 ArrayIndexOutOfBoundsException이 발생하면 끝을 내는 방식이다. 전혀 직관적이지 않다는 사실 하나만으로도 코드를 이렇게 작성하면 안 된다는 이유가 충분하다. 아래는 일반적인 관용구를 사용하여 작성한 방법이다. for (Mountain m : range) m.climb(); 왜 예외를 사용하는 방식으로 반복문을 종료하도록 하였을까? 저자는 아마도 잘못된 추론을 근거로 성능을 높여보려 시도한 흔적..