namespace std { class exception { public: exception() noexcept; exception(const exception&) noexcept; exception& operator=(const exception&) noexcept; virtual ~exception(); virtual const char* what() const noexcept; }; }
Класс exception определяет базовый класс для типов объектов, создаваемых в качестве исключений компонентами стандартной библиотеки C ++, и определенных выражений для сообщения об ошибках, обнаруженных во время выполнения программы.
Каждый класс стандартной библиотеки T , производный от класса, exception должен иметь общедоступный конструктор копии и общедоступный оператор присваивания копии, которые не завершаются с исключением. Эти функции-члены должны соответствовать следующему постусловию: если два объекта lhs и rhs оба имеют динамический тип T и lhs являются копией rhs, то strcmp(lhs.what(), rhs.what()) должны быть равны 0.
exception() noexcept;
exception(const exception& rhs) noexcept;
exception& operator=(const exception& rhs) noexcept;
Postconditions: Если *this и rhs оба имеют динамический тип, exception значение выражения strcmp(what(), rhs.what()) должно быть равно 0.
virtual ~exception();
virtual const char* what() const noexcept;
Remarks: Сообщение может быть null-terminated multibyte string, подходящим для преобразования и отображенным как wstring ([string.classes], [locale.codecvt]). Возвращаемое значение остается действительным до тех пор, пока объект исключения, из которого оно получено, не будет уничтожен или неconst будет вызвана функция, не являющаяся членом объекта исключения.