Как реализовать обработку исключений в C ++?



Эта статья поможет вам понять, что такое обработка исключений и как реализовать обработку исключений в C ++, с практической демонстрацией.

Исключения являются ненормальными условиями во время выполнения или компиляции. - очень важная концепция в 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: '<

Вывод:

Вывод - обработка исключений в C ++ - Edureka

Объяснение

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

Есть вопрос к нам? Упомяните их в разделе комментариев этого блога, и мы свяжемся с вами.