Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Catch (NumberFormatException eNumberFormat)




{ // перехват ошибки преобразования

System.out.println("Ошибка преобразования из строки в число, " + eNumberFormat);

}

System.out.println("В конце вызова z=" + z);

}

}

В этой программе eArithmetic – объект класса ArithmeticException – арифметические ошибки, eNumberFormat – объект класса NumberFormatException – некорректное преобразование строки в число.

При вводе корректного значения знаменателя, например, x=2.0, на консоль будет выведено:

x=2.0 z=1.5811388300841898 i=2

В конце вызова z=1.5811388300841898

Введем отрицательное значение знаменателя: x=-2.0:

x=-2.0 z=NaN i=-2

В конце вызова z=NaN

Таким образом, извлечение квадратного корня из отрицательного числа в Javaразрешено и дает значение NaN (исключительная ситуация не возникает).

Введем нулевое значение знаменателя: x=0.0:

Ошибка: деление на ноль, java.lang.ArithmeticException: / by zero

В конце вызова z=Infinity

Таким образом, деление на ноль действительных чисел в Javaразрешено и дает значение Infinity (исключительная ситуация не возникает). При делении на ноль целых чисел возникает исключительная ситуация, формируется объект-исключение eArithmetic, который и перехватывается блоком catch (ArithmeticException eArithmetic).

Введем некорректное значение знаменателя: x=0,0:

Ошибка преобразования из строки в число, java.lang.NumberFormatException: For input string: "0,0"

В конце вызова z=0.0

При этом формируется объект-исключение eNumberFormat, который перехватывается блоком catch (NumberFormatException eNumberFormat).

Во всех случаях после обработки исключительных ситуаций выполняется оператор, стоящий за всеми блоками catch (), в данном случае:

System.out.println("В конце вызова z=" + z);

Может случиться, что в блоке try возникла ошибка, но подходящего блока catch для ее обработки нет. В этом случае исключение выбрасывается из метода и передается внешнему (вызывающему его) методу. Согласно правилам языка Java, исключения, которые не обрабатываются в методе и выбрасываются из него, указываются в заголовке метода после ключевого слова throws. Правда, нужно указывать не все классы исключений, а только неконтролируемые. Исключение передается выше по иерархии методов, и, если обработка его ни в одном из методов не предусмотрена, то используется обработчик исключительной ситуации по умолчанию, что приводит к аварийному завершению работы программы.

Изменим предыдущую программу, вынеся деление в отдельный метод:






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных