Exceptions nur für Ausnahmen verwenden

Exceptions sollen immer nur für Ausnahmen und nicht für den normalen Programmablauf verwendet werden.

Also ist dies ein NO GO:

try{
int i =0;
while (true){
range[i].climb();
}catch(ArrayIndexOutOfBoundsException e){
}

Bei eine Endlosschleife die mit einer ArrayIndexOutOfBoundsException abbricht wird der Programmablauf über die Exception gesteuert. Das ist falsch.

Also Exceptions nur für Ausnahmen verwenden.

Aufgabe: Wie könnte es richtig gemacht werden?

(see Joshua Bloch Item 57)