Я не понимаю, когда использовать try-catch, и что с ними не так, специально этот пункт (57 java -эффективно) мог бы кто-нибудь объяснить это
// Horrible abuse of exceptions. Don't ever do this!
try {
int i = 0;
while(true)
range[i++].climb();
} catch(ArrayIndexOutOfBoundsException e) {
}
for (Mountain m : range)
m.climb();
"Потому что исключения предназначены для исключительных обстоятельств, у разработчиков JVM мало стимулов делать их так же быстро, как явные тесты. Размещение кода внутри блока try-catch препятствует определенным оптимизациям, которые в противном случае могли бы выполнить современные реализации JVM. Стандартная идиома для цикла по массиву не обязательно приводит к избыточным проверкам. Современные реализации JVM оптимизируют их ".
Наконец, если мы не можем использовать try-catch в каждом блоке, как я могу регистрировать сбои на сервере без блока catch