Namespaces
Variants

std:: exception

From cppreference.net
Utilities library
Определено в заголовочном файле <exception>
class exception ;

Обеспечивает единообразный интерфейс для обработки ошибок через throw expression .

Все исключения, генерируемые стандартной библиотекой, наследуются от std::exception .

Все функции-члены std::exception являются constexpr .

(since C++26)

Содержание

Функции-члены

создает объект исключения
(public member function)
[virtual]
уничтожает объект исключения
(virtual public member function)
копирует объект исключения
(public member function)
[virtual]
возвращает поясняющую строку
(virtual public member function)

Стандартные требования к исключениям

Каждый стандартный класс библиотеки T , который наследуется от std::exception , имеет следующие публично доступные функции-члены, каждая из которых не завершается с исключением (до C++11) имеет непорождающую исключений спецификацию (начиная с C++11) :

Конструктор копирования и оператор присваивания копированием удовлетворяют следующему постусловию:

  • Если два объекта lhs и rhs оба имеют динамический тип T и lhs является копией rhs , тогда std:: strcmp ( lhs. what ( ) , rhs. what ( ) ) равен 0 .

Функция-член what() каждого такого T удовлетворяет ограничениям, указанным для std::exception::what() .

Стандартные исключения

(начиная с C++11)
(начиная с C++11)
(начиная с C++17)
(TM TS)
**Примечание:** В данном случае переводить нечего, так как: - `tx_exception` - термин C++ (не переводится) - `(TM TS)` - техническая маркировка (не переводится) - Весь остальной текст содержится в HTML-тегах и атрибутах Если бы в документе был обычный текст вне указанных ограничений, он был бы переведен на русский язык с сохранением всей HTML-разметки.
(начиная с C++20)
(начиная с C++17)
(начиная с C++23)
(начиная с C++11)
(начиная с C++11)
(до C++11)
(начиная с C++17)

Примечания

Макрос тестирования возможностей Значение Стандарт Функция
__cpp_lib_constexpr_exceptions 202411L (C++26) constexpr для типов исключений

Отчеты о дефектах

Следующие отчеты об изменениях поведения, влияющие на дефекты, были применены ретроактивно к ранее опубликованным стандартам C++.

DR Применяется к Поведение в опубликованной версии Корректное поведение
LWG 471 C++98 не было требований к стандартным классам библиотеки, производным от std::exception добавлено