Namensräume
Varianten
Aktionen

std::future_error

Von cppreference.com
< cpp‎ | thread
 
 
Bibliothek für nebenläufige Programmierung
Threads
(C++11)
(C++20)
this_thread Namespace
(C++11)
(C++11)
(C++11)
Kooperatives Beenden
Gegenseitiger Ausschluss
(C++11)
Allgemeines Sperrungsmanagement
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
Bedingungsvariablen
(C++11)
Semaphoren
Latches und Barriers
(C++20)
(C++20)
Futures
(C++11)
(C++11)
(C++11)
(C++11)
future_error
(C++11)
Sichere Wiederherstellung
(C++26)
Hazard Pointer
Atomare Typen
(C++11)
(C++20)
Initialisierung von atomaren Typen
(C++11)(veraltet in C++20)
(C++11)(veraltet in C++20)
Speicherordnung
(C++11)(deprecated in C++26)
Freie Funktionen für atomare Operationen
Freie Funktionen für atomare Flags
 
 
Definiert im Header <future>
class future_error;
(seit C++11)

Die Klasse std::future_error definiert ein Ausnahmeobjekt, das bei Fehlern von den Funktionen in der Thread-Bibliothek, die sich mit asynchroner Ausführung und gemeinsamen Zuständen befassen (std::future, std::promise, etc.), geworfen wird. Ähnlich wie std::system_error trägt diese Ausnahme einen Fehlercode, der mit std::error_code kompatibel ist.

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

Vererbungdiagramm

Inhalt

[bearbeiten] Memberfunktionen

erzeugt ein std::future_error-Objekt
(public member function) [bearbeiten]
ersetzt das std::future_error-Objekt
(public member function) [bearbeiten]
gibt den Fehlercode zurück
(public member function) [bearbeiten]
gibt den erklärenden String zurück, der spezifisch für den Fehlercode ist
(public member function) [bearbeiten]

Abgeleitet von std::logic_error

Abgeleitet von std::exception

Memberfunktionen

[virtuell]
zerstört das Ausnahmeobjekt
(virtuelle öffentliche Memberfunktion von std::exception) [bearbeiten]
[virtuell]
gibt einen erklärenden String zurück
(virtuelle öffentliche Memberfunktion von std::exception) [bearbeiten]

[bearbeiten] Beispiel

#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";
    }
}

Mögliche Ausgabe

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

[bearbeiten] Siehe auch

identifiziert die Future-Fehlercodes
(Enum) [bearbeiten]