Исключения. Допустим, пользователь вводит число и выполняет над ним арифметические операции. Если он ввел ноль и поделил на него, программа вылетит из-за необработанного исключения. Чтобы этого не произошло, блок, в котором может возникнуть такая ситуация (допустим, операция деления) мы помещаем в конструкцию try. А в catch мы помещаем набор методов и процедур для обработки возникшего исключения (например, выводим сообщение об ошибке), программа при этом не вылетит.