РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
592 of 815 menu

Класс exception

Класс exception - это базовый класс, от которого наследуются все стандартные классы исключений в C++. Он определён в заголовочном файле <exception>. Класс не принимает параметров при создании и предоставляет виртуальный метод what, который возвращает строку с описанием ошибки. Этот метод можно переопределять в производных классах, чтобы возвращать собственное сообщение об ошибке.

Синтаксис

#include <exception> class exception; // Получение сообщения об ошибке const char* what() const noexcept;

Пример

Давайте создадим объект класса exception и вызовем его метод what:

#include <iostream> #include <exception> using namespace std; int main() { exception e; cout << e.what() << endl; return 0; }

Результат выполнения кода:

"std::exception"

Пример

Давайте создадим собственный класс исключения, унаследованный от exception, и переопределим метод what:

#include <iostream> #include <exception> using namespace std; class MyException : public exception { public: const char* what() const noexcept override { return "My custom error"; } }; int main() { try { throw MyException(); } catch (const exception& e) { cout << e.what() << endl; } return 0; }

Результат выполнения кода:

"My custom error"

Пример

Давайте перехватим стандартное исключение через базовый класс exception:

#include <iostream> #include <exception> #include <stdexcept> using namespace std; int main() { try { throw out_of_range("Index is out of range"); } catch (const exception& e) { cout << e.what() << endl; } return 0; }

Результат выполнения кода:

"Index is out of range"

Смотрите также

  • метод what,
    который возвращает сообщение об ошибке
  • оператор throw,
    который генерирует исключение
  • конструкция try,
    которая определяет блок для перехвата исключений
  • конструкция catch,
    которая перехватывает исключения
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить