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

Метод what класса exception

Метод what принадлежит базовому классу exception и возвращает указатель на строку с описанием ошибки. Этот метод обычно переопределяется в производных классах, чтобы предоставить более конкретную информацию об исключении. Метод не принимает параметров и не изменяет объект исключения. Возвращаемый указатель указывает на строку, время жизни которой совпадает со временем жизни объекта исключения.

Синтаксис

const char* what() const noexcept;

Пример

Давайте выбросим исключение стандартного типа runtime_error и выведем его описание с помощью метода what:

#include <iostream> #include <stdexcept> using namespace std; int main() { try { throw runtime_error("Something went wrong"); } catch (const exception& e) { cout << e.what() << endl; } return 0; }

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

"Something went wrong"

Пример

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

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

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

"My custom exception"

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

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