Обеспечивает единообразный интерфейс для обработки ошибок через
throw expression
.
Все исключения, генерируемые стандартной библиотекой, наследуются от
std::exception
.
|
Все функции-члены
std::exception
являются
constexpr
.
|
(since C++26)
|
Функции-члены
|
|
создает объект исключения
(public member function)
|
|
|
уничтожает объект исключения
(virtual public member function)
|
|
|
копирует объект исключения
(public member function)
|
|
|
возвращает поясняющую строку
(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()
.
Стандартные исключения
-
-
**Примечание:** В данном случае переводить нечего, так как:
- `tx_exception` - термин C++ (не переводится)
- `(TM TS)` - техническая маркировка (не переводится)
- Весь остальной текст содержится в HTML-тегах и атрибутах
Если бы в документе был обычный текст вне указанных ограничений, он был бы переведен на русский язык с сохранением всей HTML-разметки.
Примечания
Отчеты о дефектах
Следующие отчеты об изменениях поведения, влияющие на дефекты, были применены ретроактивно к ранее опубликованным стандартам C++.
|
DR
|
Применяется к
|
Поведение в опубликованной версии
|
Корректное поведение
|
|
LWG 471
|
C++98
|
не было требований к стандартным классам библиотеки, производным от
std::exception
|
добавлено
|