Как легко обрабатывать исключения в C++

Kak Legko Obrabatyvat Isklucenia V C



Неожиданные события, происходящие во время работы программы, называются исключениями или ошибками. Исключения возникают во время выполнения и не могут быть перехвачены во время компиляции, поэтому могут вызвать серьезные проблемы в программе. Хорошая обработка исключений в программе на C++ — главная цель программиста, позволяющая получить желаемые результаты.

Как легко обрабатывать исключения в C++

Обработка исключений в C++ относится к механизму обнаружения ошибок во время выполнения и их эффективной обработки, например, обработка недопустимых входных данных, деление числа на ноль в операциях деления и многое другое.

Обработка исключений в C++ включает три ключевых слова: try, throw и catch. Оператор try позволяет пользователю определить блок кода, который может вызвать исключение в коде. Ключевое слово throw генерирует исключение, если оно обнаружено после проверки блока под ключевым словом try. Ключевое слово catch содержит блок кода, который может обработать исключение, наблюдаемое в блоке try.







Пример 1. Обработка исключений во время разделения

Код написан для проверки исключений при делении.



#include
с использованием пространство имен стандартный ;

интервал основной ( ) {

двойной числитель, знаменатель, деление ;

расчет << 'Введите значение числителя: ' ;
принимать пищу >> числитель ;

расчет <> знаменатель ;

пытаться {


если ( знаменатель == 0 )
бросать 0 ;


разделение '=' числитель / знаменатель ;
расчет << числитель << '/' << знаменатель << '=' << разделение << конец ;
}

ловить ( интервал число_исключение ) {
расчет << «Ошибка! Делитель не может быть  » << число_исключение << конец ;
}

возвращаться 0 ;
}

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







Пользователь вводит числитель 42 и 0 в знаменателе, что вызывает исключение, поэтому программа возвращает аргумент ошибки.



Пользователь вводит числитель 42 и 2 в качестве знаменателя, поскольку исключений не обнаружено, результат после деления возвращается.

Пример 2. Обработка исключений для проверки возраста

Эта программа проверяет исключения по возрасту пользователя.

#include
с использованием пространство имен стандартный ;

/*
Здесь мы хотим создать исключение (возраст как исключение), если возраст человека меньше 18 лет.
*/

интервал основной ( )
{
// проверка, превышает ли возраст 18 лет в блоке try.
пытаться
{
интервал возраст ;
расчет << 'Для доступа введите свой возраст: ' ;
принимать пищу >> возраст ;

если ( возраст >= 18 )
{
расчет << 'Доступ предоставлен.' ;
}
// пользовательское исключение выдается, если возраст младше 18 лет.
еще
{
бросать ( возраст ) ;
}
}
// перехват выброшенного исключения и отображение желаемого результата (доступ запрещен!)
ловить ( интервал Икс )
{
расчет << «Доступ запрещен! Вы несовершеннолетний». << конец ;
}
возвращаться 0 ;
}

В этой программе определяется переменная с целочисленным значением. Пользователю предлагается ввести возраст и попытаться блокировать проверки, превышает ли возраст пользователя 18 лет или равен ему. Если это не так, то выдается исключение, и блок исключений возвращает «Доступ запрещен»! Аргумент. В противном случае доступ будет предоставлен.

Пользователь вводит возраст 12 лет, чтобы проверить разрешение на доступ, поскольку этот возраст меньше 18 лет, поэтому возвращается аргумент «Отказано в доступе».

Пользователь вводит возраст 20, так как он старше 18, поэтому доступ предоставляется пользователю.

Примечание : Если в программе нет блока catch, то программа будет вести себя ненормально и неожиданно завершится в случае возникновения исключений.

Заключение

Обработка исключений в C++ относится к механизму обнаружения ошибок во время выполнения и их эффективной обработки. Он включает в себя три ключевых слова: попытка, бросок и ловля. Исключение проверяется для кода в блоке try, ключевое слово throw генерирует исключение, если оно обнаружено, а блок catch обрабатывает исключение, созданное для блока try. Обработка исключений делает работу пользователя более плавной и удобной, избегая ошибок во время выполнения.