Исключения обслуживаются catch-обработчиками (или обработчиками
исключений)у которые перехватывают и обрабатывают исключения. За
каждым try-блоком должен непосредственно следовать хотя бы один
catch-обработчик (строки 43-47). Каждый обработчик начинается ключевым словом
catch и специфицирует (в круглых скобках) параметр исключения,
представляющий тип исключений, которые могут обслуживаться данным
обработчиком (в данном случае это DivideByZeroException). Когда в try-блоке возникает
исключение, исполняется тот catch-обработчик, тип которого согласуется
с типом данного исключения (т.е. тип в catch-блоке либо совпадает с типом
выброшенного исключения, либо является его базовым классом). Если
параметр исключения содержит необязательное имя параметра, catch-обработчик
может использовать это имя в своем теле (которое заключено в фигурные
скобки) для взаимодействия с перехваченным объектом исключения. Обычно
catch-обработчик сообщает пользователю об ошибке, регистрирует ее в файле,
аккуратно завершает программу или избирает альтернативную стратегию
выполнения неудавшейся операции. В данном примере catch-обработчик просто
сообщает о том, что пользователь попытался делить на ноль. Затем программа
предлагает пользователю ввести два новых целых числа.