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 error

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

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

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

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

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

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

(деструктор)
[виртуальная]
уничтожает объект исключения
(виртуальная открытая функция-член класса std::exception)
what
[виртуальная]
возвращает поясняющую строку
(виртуальная открытая функция-член класса 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/cpp/thread/future_error

Spec-Zone.ru

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