Namespaces
Variants

std::exception:: exception

From cppreference.net
Utilities library
(1)
exception ( ) throw ( ) ;
(до C++11)
exception ( ) noexcept ;
(начиная с C++11)
(constexpr начиная с C++26)
(2)
exception ( const exception & other ) throw ( ) ;
(до C++11)
exception ( const exception & other ) noexcept ;
(начиная с C++11)
(constexpr начиная с C++26)

Создает новый объект исключения.

1) Конструктор по умолчанию. what() возвращает строку, определённую реализацией.
2) Конструктор копирования. Инициализирует содержимое значением из other . Если * this и other оба имеют динамический тип std::exception , тогда std:: strcmp ( what ( ) , other. what ( ) ) == 0 .

Параметры

other - другое исключение для присвоения содержимого

Примечания

Поскольку копирование std::exception не должно генерировать исключения, когда производные классы (такие как std::runtime_error ) должны управлять пользовательским диагностическим сообщением, это обычно реализуется как строка с копированием при записи.

Реализация Microsoft включает нестандартные конструкторы, принимающие строки, что позволяет создавать экземпляры непосредственно с осмысленным сообщением об ошибке. Ближайшими стандартными аналогами являются std::runtime_error или std::logic_error .

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

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

DR Applied to Behavior as published Correct behavior
LWG 471 C++98 there is no requirement on what() of the exception copy added