Исключения являются ненормальными условиями во время выполнения или компиляции. - очень важная концепция в C ++. Эта статья познакомит вас с обработкой исключений в C ++, а также с ее различными типами.
Следующие указатели будут рассмотрены в этой статье,
Итак, давайте начнем,
Обработка исключений в C ++
Типы исключений
Есть два типа исключений:
Исключение времени выполнения
Это исключение, обнаруженное во время выполнения.
Исключение времени компиляции
Это исключение, обнаруженное во время компиляции.
Продолжая эту статью об обработке исключений на C ++,
Что такое обработка исключений?
Ошибки нарушают нормальное выполнение программы. Обработка исключений очень необходима, и это процесс обработки ошибок или исключений. Он гарантирует, что на выполнение программы не влияют исключения, и медленно обрабатывает их, не вызывая проблем при выполнении программы.
Когда вы рассматриваете обработку исключений, с ней связаны три термина:
Пытаться
Код внутри этого блока похож на пробный код, который может вызвать исключение. Это исключение перехватывается внутри блока catch.
Ловить
Код в этом блоке выполняется, когда код в блоках try вызывает исключение.
Бросить
Это ключевое слово используется для создания исключения при его обнаружении. Исключение отправляется обработчику исключений.
Синтаксис:
Код внутри блока try выполняется. Если возникает ошибка, то ключевое слово выдает исключение в обработчик исключений, то есть в блок catch. Затем блок catch выполнил код, который находится внутри его блока, таким образом обработав исключение.
Давайте посмотрим на пример кода для обработки исключений в c ++
Образец кода
#include using namespace std try {// код для try throw & ldquoexception & rdquo} catch (exception) {// код для catch} int main () {int x = 1 try {cout<< 'Try Block: '<Вывод:
Объяснение
Эта программа демонстрирует обработку исключений. У нас есть переменная x, которой присвоено значение 1. Затем у нас есть начало блока try. В этом блоке у нас есть оператор if с условием x<10.
В нашем случае условие выполняется, поскольку x равен единице. Затем программа генерирует исключение, и элемент управления переходит в блок catch. Выполняем условие в части catch и выходим из блока.
поймать (...) {стоимость<< 'Default Exceptionn'<Наконец, мы выполняем оставшиеся операторы после блока catch и выходим из программы.
Может быть несколько операторов catch, в зависимости от количества возможных исключений.
Продолжая эту статью об обработке исключений на C ++,
Отказ блока захвата
Рассмотрим предыдущую программу: если вместо x ключевое слово throw выбрасывает «ABC», функция catch не сможет его обработать. Это покажет ошибку,
В таком случае может отображаться наше выигранное сообщение об ошибке.
Чтобы решить эту проблему, нам нужно добавить в код функцию перехвата по умолчанию для обработки таких проблем.
#include с использованием пространства имен std int main () {int x = 1 try {cout<< 'Try Block: '<Выход:
преобразовать десятичное число в двоичный PythonПояснение:
Этот код похож на предыдущий. Единственное изменение состоит в том, что выброшенное исключение имеет тип char. Это приводит к тому, что наша функция catch становится бесполезной. Итак, мы включили функцию перехвата по умолчанию.
Если ни один из операторов catch не соответствует, выполняется catch по умолчанию.
Множественные блоки улова
В одном блоке попытки может быть несколько блоков catch.
Вот пример,
#include с использованием пространства имен std int test (int a) {try {if (a<0) throw a else throw 'a' }catch(int a){ cout<<'Caught an integer: ' << a<Вывод:
Пояснение:
В приведенном выше коде мы используем несколько операторов catch. У нас есть функциональный тест, который генерирует исключение. В первом тестовом примере значение равно 10. Так как 10 больше нуля, выдается символ «a», который перехватывается второй функцией catch.
Во втором случае значение меньше 0, поэтому выбрасывается значение -1, которое перехватывается целочисленным исключением.
Обработка исключений в базовом и производном классе:
Если перехватываются исключения базового и производного классов, то перехват производного класса должен выполняться до базового класса.
Вот некоторые исключения:
std :: exception
logic_error
ошибка выполнения
bad_alloc
bad_cast
bad_exception
На этом мы подошли к концу этого блога «Обработка исключений в C ++». Я надеюсь, что вы нашли это информативным и полезным, следите за обновлениями, чтобы увидеть больше уроков по аналогичным темам. Вы также можете ознакомиться с нашей программой обучения to получить глубокие знания о jQuery и его различных приложениях, вы можете для онлайн-обучения с круглосуточной поддержкой и пожизненным доступом.
Есть вопрос к нам? Упомяните их в разделе комментариев этого блога, и мы свяжемся с вами.