std::future_error(3)

NAME
std::future_error - std::future_error

Synopsis
   Defined in header <future>
   class future_error; (since C++11)
   The class std::future_error defines an exception object that is thrown on failure by
   the functions in the thread library that deal with asynchronous execution and shared
   states (std::future, std::promise, etc). Similar to std::system_error, this
   exception carries an error code compatible with std::error_code.
   std-future error-inheritance.svg
                        Inheritance diagram

Member functions
   constructor creates a std::future_error object
                 (public member function)
   operator= replaces the std::future_error object
                 (public member function)
   code returns the error code
                 (public member function)
   what returns the explanatory string specific to the error code
                 (public member function) Inherited from std::logic_error Inherited from std::exception

Member functions
   destructor destroys the exception object
   [virtual] (virtual public member function of std::exception)
   what returns an explanatory string
   [virtual] (virtual public member function of std::exception)

Example
// Run this code
 #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";
     }
 }

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

See also
   future_errc identifies the future error codes
   (C++11) (enum)