В конце вызова 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. Правда, нужно указывать не все классы исключений, а только неконтролируемые. Исключение передается выше по иерархии методов, и, если обработка его ни в одном из методов не предусмотрена, то используется обработчик исключительной ситуации по умолчанию, что приводит к аварийному завершению работы программы.
Изменим предыдущую программу, вынеся деление в отдельный метод:
package javaapplicationtry;
import java.io.*;
import javax.swing.*;