Как легко обрабатывать исключения в 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. Обработка исключений делает работу пользователя более плавной и удобной, избегая ошибок во время выполнения.