В общем, избегайте возникновения исключения, которое можно было бы легко избежать путем тестирования времени выполнения, и это может быть проблемой по причинам, отличным от ошибок в другом месте вашего кода.
Если вы собираетесь что-то делить, и у вас нет причин полагать, что делитель равен 0 (например, если он был введен пользователем), сначала проверьте вход.
Если, однако, Делитель не должен быть равен нулю и по другим причинам (например, это размер коллекции, безусловно, должно быть не пусто), то это, по крайней мере более разумным, чтобы этот пузырь в качестве исключения. В этом случае вы не должны быть , обрабатывая, но это конкретное исключение, поскольку вы не ожидаете, что оно пойдет не так. В любом случае вы можете защищаться от возможности, но если вы заметите такую ошибку, вы, вероятно, захотите выбросить какой-либо другой вид исключения, чтобы указать на ошибку. Опять же, это не должно быть «обработано», кроме как рядом с верхней частью стека, где вы могли бы перехватывать общие исключения (например, чтобы сервер мог продолжать работать, даже если один запрос не срабатывает).
В целом вы должны быть только Обработка исключений, которые вы не можете разумно предсказать - например. сбой ввода-вывода или веб-сервис, не присутствующий и т. д.
Решение 1. Вы почти никогда не справляетесь с ошибкой, так как обычно это не может обрабатываться ** **. В зависимости от исключения это может быть или не быть возможно для его обработки (повторите попытку несколько раз, например, в случае исключения IOException). – extraneon
Пожалуйста, внимательно прочитайте. Я сказал «ошибка», а не «Ошибка» (как в «java.lang.Error»). –