Dient als uitzonderingstype voor fouten bij asynchrone bewerkingen met Future en Promise en kapselt een foutcode in.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 4af39887de1dHerkomstOpen vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
Dient als uitzonderingstype voor fouten bij asynchrone bewerkingen met Future en Promise en kapselt een foutcode in.
De klasse ara::core::FutureException dient als specifiek uitzonderingstype dat bij fouten in combinatie met ara::core::Future en ara::core::Promise wordt gegooid [SWS_CORE_00412]. Zij kapselt een ara::core::ErrorCode in en wordt gecreëerd via een expliciete constructor [SWS_CORE_00412]. Voor veilig gebruik in asynchrone en multithreaded omgevingen is de instantiëring gespecificeerd als noexcept, thread-safe en uitzonderingsveilig [SWS_CORE_00412].
Context
De klasse ara::core::FutureException fungeert binnen de module core als specifiek uitzonderingstype voor asynchrone communicatie- en synchronisatieprimitieven. Overeenkomstig haar doel wordt dit uitzonderingstype geactiveerd door ara::core::Future en ara::core::Promise om fouttoestanden in de context van asynchrone bewerkingen aan de aanroeper te signaleren. Structureel erft ara::core::FutureException over van de basisklasse Exception en kapselt een domeinspecifieke foutcode in.
In collaboratieve scenario's vormt ara::core::FutureException de brug tussen het producerende asynchrone eindpunt (zoals ara::core::Promise), het consumerende eindpunt (ara::core::Future) en de foutafhandeling aan de applicatiezijde. De wisselwerking tussen deze drie partijen verduidelijkt het structurele kader waarbinnen de uitzondering ter foutafhandeling wordt overgedragen.
Contextdiagram: Inbedding van ara::core::FutureException tussen Promise, Future en de applicatiethread. Bronnen: [SWS_CORE_00412]
Levenscyclus
De instantiëring van ara::core::FutureException geschiedt expliciet via de constructor onder overdracht van een foutcode van het type ara::core::ErrorCode[SWS_CORE_00412]. Door de declaratie met explicit wordt een impliciete typeconversie vanuit een ara::core::ErrorCode verhinderd. De constructor is aangemerkt als noexcept, waardoor gewaarborgd is dat de constructie zelf geen verdere uitzonderingen kan veroorzaken [SWS_CORE_00412].
Wat betreft uitvoeringsveiligheid is de klasse gespecificeerd als uitzonderingsveilig (exception safe) [SWS_CORE_00412]. Voor gelijktijdig gebruik merkt de specificatie de constructie bovendien expliciet aan als thread-safe [SWS_CORE_00412]. Hierdoor kunnen asynchrone bewerkingen de uitzondering veilig over threadgrenzen heen instantiëren en doorgeven aan wachtende ontvangers.
Gebruikspad
Het typische toepassingsverloop omvat het ontstaan van een fout tijdens een asynchrone bewerking tot en met het opvangen van de uitzondering door de consumerende aanroeper. De beschikbaarstelling geschiedt doorgaans via de header ara/core/future_error_domain.h[SWS_CORE_00412].
Sequentiediagram: Verloop van het ontstaan van de fout via de instantiëring van ara::core::FutureException tot het opvangen. Bronnen: [SWS_CORE_00412]
Het gebruiksverloop is onderverdeeld in de volgende stappen:
Detectie van een mislukking of een niet-toegestane toestand bij de asynchrone verwerking in combinatie met ara::core::Promise of ara::core::Future.
Aanmaken van de ara::core::FutureException middels de constructor onder vermelding van de specifieke ara::core::ErrorCode[SWS_CORE_00412].
Overdracht van de uitzondering aan de consumerende thread, waar deze binnen een try-catch-blok wordt opgevangen en de aanwezige fout wordt geanalyseerd.
Foutscenario's
Omdat ara::core::FutureException zelf het middel voor foutsignalering vormt, beperken foutscenario's zich tot de voorwaarden voor haar eigen ontstaan. Door de aanduiding van de constructor met noexcept is gegarandeerd dat bij de objectcreatie geen uitvoeringsfout in de vorm van een secundaire uitzondering kan optreden [SWS_CORE_00412]. Als voorwaarde voor de constructie geldt het doorgeven van een geldig object van het type ara::core::ErrorCode als parameter err[SWS_CORE_00412]. Treedt bij het werken met ara::core::Future of ara::core::Promise een fout op, dan dient de uitzondering ertoe deze foutcode ongewijzigd naar bovenliggende aanroepen te transporteren.
Deze handleiding is gebaseerd op AUTOSAR Adaptive Platform R25-11.
UML-klassendiagram
Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.
gemini-3.8-flash-low· 2026-10-13 · Duits origineel