Spec-Zone.ru › C++

std::future_error

Определено в заголовочном файле <future>
class future_error;
(с C++11)

Класс std::future_error определяет объект исключения, который выбрасывается при ошибке функциями в библиотеке потоков, связанными с асинхронным выполнением и совместным доступом к состояниям (std::future, std::promise, и т.д.). Аналогично std::system_error, это исключение содержит код ошибки, совместимый с std::error_code.

cpp/error/exception cpp/error/logic errorstd-future error-inheritance.svg

Схема наследования

Члены

(конструктор)
создаёт объект std::future_error
(публичный член-функция)
operator=
заменяет объект std::future_error
(публичный член-функция)
code
возвращает код ошибки
(публичный член-функция)
what
возвращает строку с описанием, специфичную для кода ошибки
(публичный член-функция)

Наследуется от std::logic_error

Наследуется от std::exception

Члены

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

Пример

#include <future>
#include <iostream>
 
int main()
{
    std::future<int> empty;
    try
    {
        int n = empty.get(); // The behavior is undefined, but
                             // some implementations throw std::future_error
    }
    catch (const std::future_error& e)
    {
        std::cout << "Caught a future_error with code \"" << e.code()
                  << "\"\nMessage: \"" << e.what() << "\"\n";
    }
}

Возможный вывод:

Caught a future_error with code "future:3"
Message: "No associated state"

См. также

future_errc
(C++11)
определяет коды ошибок для объекта future
(перечисление)

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

Spec-Zone.ru

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