Dient als Ausnahmetyp für Fehler bei asynchronen Operationen mit Future und Promise und kapselt einen Fehlercode.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 4af39887de1dHerkunftOffene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Dient als Ausnahmetyp für Fehler bei asynchronen Operationen mit Future und Promise und kapselt einen Fehlercode.
Die Klasse ara::core::FutureException dient als spezifischer Ausnahmetyp, der bei Fehlern in Verbindung mit ara::core::Future und ara::core::Promise geworfen wird [SWS_CORE_00412]. Sie kapselt einen ara::core::ErrorCode und wird über einen expliziten Konstruktor erzeugt [SWS_CORE_00412]. Für den sicheren Einsatz in asynchronen und nebenläufigen Umgebungen ist die Instanziierung als noexcept, threadsicher und ausnahmesicher spezifiziert [SWS_CORE_00412].
Kontext
Die Klasse ara::core::FutureException fungiert innerhalb des Moduls core als dedizierter Ausnahmetyp für asynchrone Kommunikations- und Synchronisationsprimitive. Gemäß ihrer Zweckbestimmung wird dieser Ausnahmetyp von ara::core::Future sowie ara::core::Promise ausgelöst, um Fehlerzustände im Kontext asynchroner Operationen an den Aufrufer zu signalisieren. Strukturell leitet ara::core::FutureException von der Basisklasse Exception ab und kapselt einen domänenspezifischen Fehlercode.
In kollaborativen Szenarien bildet ara::core::FutureException die Brücke zwischen dem erzeugenden asynchronen Endpunkt (wie ara::core::Promise), dem konsumierenden Endpunkt (ara::core::Future) und der anwendungsseitigen Fehlerbehandlung. Das Zusammenspiel dieser drei Beteiligten verdeutlicht den strukturellen Rahmen, in dem die Ausnahme zur Fehlerbehandlung übergeben wird.
Kontextdiagramm: Einbettung von ara::core::FutureException zwischen Promise, Future und dem Anwendungs-Thread. Quellen: [SWS_CORE_00412]
Lebenszyklus
Die Instanziierung von ara::core::FutureException erfolgt explizit über den Konstruktor unter Übergabe eines Fehlercodes vom Typ ara::core::ErrorCode[SWS_CORE_00412]. Durch die Deklaration mit explicit wird eine implizite Typkonvertierung aus einem ara::core::ErrorCode unterbunden. Der Konstruktor ist als noexcept ausgewiesen, wodurch gewährleistet ist, dass die Konstruktion selbst keine weiteren Ausnahmen auslösen kann [SWS_CORE_00412].
Hinsichtlich der Ausführungssicherheit ist die Klasse als ausnahmesicher (exception safe) spezifiziert [SWS_CORE_00412]. Für den nebenläufigen Betrieb weist die Spezifikation die Konstruktion zudem explizit als threadsicher (thread-safe) aus [SWS_CORE_00412]. Dies gestattet es asynchronen Operationen, die Ausnahme über Thread-Grenzen hinweg sicher zu instanziieren und an wartende Empfänger weiterzureichen.
Nutzungspfad
Der typische Einsatzablauf umfasst die Entstehung eines Fehlers während einer asynchronen Operation bis hin zum Abfangen der Ausnahme durch den konsumierenden Aufrufer. Die Bereitstellung erfolgt typischerweise über den Header ara/core/future_error_domain.h[SWS_CORE_00412].
Sequenzdiagramm: Ablauf von Fehlerentstehung über Instanziierung von ara::core::FutureException bis zum Abfangen. Quellen: [SWS_CORE_00412]
Der Nutzungsablauf gliedert sich in folgende Schritte:
Erkennung eines Fehlschlags oder eines unzulässigen Zustands bei der asynchronen Verarbeitung in Verbindung mit ara::core::Promise oder ara::core::Future.
Erzeugung der ara::core::FutureException mittels des Konstruktors unter Angabe des spezifischen ara::core::ErrorCode[SWS_CORE_00412].
Übermittlung der Ausnahme an den konsumierenden Thread, wo sie im Rahmen eines try-catch-Blocks abgefangen und der enthaltene Fehler analysiert wird.
Fehlerszenarien
Da ara::core::FutureException selbst das Vehikel zur Fehlersignalisierung darstellt, beschränken sich Fehlerszenarien auf die Bedingungen ihrer eigenen Entstehung. Durch die Kennzeichnung des Konstruktors mit noexcept ist garantiert, dass bei der Objekterzeugung kein Ausführungsfehler in Form einer sekundären Ausnahme auftreten kann [SWS_CORE_00412]. Als Vorbedingung für die Konstruktion gilt die Übergabe eines gültigen Objekts vom Typ ara::core::ErrorCode als Parameter err[SWS_CORE_00412]. Tritt bei der Arbeit mit ara::core::Future oder ara::core::Promise ein Fehler auf, dient die Ausnahme dem Zweck, diesen Fehlercode unverändert an übergeordnete Aufrufe zu transportieren.
Dieser Leitfaden basiert auf AUTOSAR Adaptive Platform R25-11.
UML-Klassendiagramm
Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.
gemini-3.8-flash-medium· 2026-10-13