Spec-Zone.ru › C++

std::format_error

Определено в заголовке <format>
class format_error;
(с C++20)

Определяет тип объекта исключения, выбрасываемого для сообщения об ошибках в библиотеке форматирования.

cpp/error/exception cpp/error/runtime errorstd-format error-inheritance.svg

Диаграмма наследования

Члены-функции

(конструктор)
создаёт новый объект format_error с указанным сообщением
(публичная функция-член)
operator=
заменяет объект format_error
(публичная функция-член)

std::format_error::format_error

format_error( const std::string& what_arg );
(1)
format_error( const char* what_arg );
(2)
format_error( const format_error& other ) noexcept;
(3)
1) Создаёт объект исключения со строкой пояснения what_arg. После создания, std::strcmp(what(), what_arg.c_str()) == 0.
2) Создаёт объект исключения со строкой пояснения what_arg. После создания, std::strcmp(what(), what_arg) == 0.
3) Конструктор копирования. Если *this и other оба имеют динамический тип std::format_error, то std::strcmp(what(), other.what()) == 0.

Параметры

what_arg - строка пояснения
other - другой объект исключения для копирования

Исключения

1,2) Может выбросить std::bad_alloc.

Примечания

Поскольку копирование std::format_error запрещено для выброса исключений, это сообщение обычно хранится внутри как отдельная строка с подсчётом ссылок. Это также объясняет, почему нет конструктора, принимающего std::string&&: ему всё равно пришлось бы скопировать содержимое.

Производный стандартный класс исключения должен иметь публичный конструктор копирования. Он может быть неявно определён, если строки пояснения, полученные из what(), одинаковы для исходного объекта и скопированного объекта.

std::format_error::operator=

format_error& operator=( const format_error& other ) noexcept;

Присваивает содержимое, используя содержимое other. Если *this и other оба имеют динамический тип std::format_error, то std::strcmp(what(), other.what()) == 0 после присваивания.

Параметры

other - другой объект исключения для присваивания

Возвращаемое значение

*this

Примечания

Производный стандартный класс исключения должен иметь публичный оператор присваивания копирования. Он может быть неявно определён, если строки пояснения, полученные из what(), одинаковы для исходного объекта и скопированного объекта.

Унаследовано от std::runtime_error

Унаследовано от std::exception

Члены-функции

(деструктор)
[virtual]
уничтожает объект исключения
(виртуальная публичная функция-член класса std::exception)
what
[virtual]
возвращает строку пояснения
(виртуальная публичная функция-член класса std::exception)

Пример

См. также

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/utility/format/format_error

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API