Effective Java: Exceptions

Продолжаем. Сегодня речь о 9-й главе «Exceptions».


Item 57. Используйте exception-ы только для исключительных (exceptional) ситуаций.

Автор приводит пример применения исключений не по назначению для итерации по массиву без проверки выходна за границу.

// Horrible abuse of exceptions. Don't ever do this!
try {
    int i = 0;
    while(true)
        range[i++].climb();
} catch(ArrayIndexOutOfBoundsException e) {
}

Такой подход может ошибочно применятся для ускорения программы, однако имеет большое число недостатков. В их числе - плохое влияние на действительную производительность.

Мораль такова: exception-ы не случайно названы именно так и должны использоваться только для обработки исключительных ситуаций, а не для контроля за нормальным выполнением программы.