# std::future_error

< cpp‎ | thread

定义于头文件 `<future>` |  |
class future_error; |  | (C++11 起)

类 std::future_error 定义异常对象，它为处理异步执行和共享状态（ std::future 、 std::promise 等）的线程库中的函数在失败时抛出。同 std::system_error ，此异常携带与 std::error_code 兼容的错误码。

继承图

### 成员函数

(构造函数) | 创建 `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(); // 行为未定义，但一些实现抛出 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 错误码 (枚举)