Sert de type d'exception pour les erreurs lors d'opérations asynchrones avec Future et Promise et encapsule un code d'erreur.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 4af39887de1dProvenanceQuestions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
Sert de type d'exception pour les erreurs lors d'opérations asynchrones avec Future et Promise et encapsule un code d'erreur.
La classe ara::core::FutureException sert de type d'exception spécifique levé lors d'erreurs en lien avec ara::core::Future et ara::core::Promise[SWS_CORE_00412]. Elle encapsule un ara::core::ErrorCode et est créée via un constructeur explicite [SWS_CORE_00412]. Pour une utilisation sécurisée dans des environnements asynchrones et concurrents, l'instanciation est spécifiée comme noexcept, thread-safe et sûre vis-à-vis des exceptions [SWS_CORE_00412].
Contexte
La classe ara::core::FutureException fait office, au sein du module core, de type d'exception dédié pour les primitives de synchronisation et de communication asynchrones. Conformément à sa finalité, ce type d'exception est déclenché par ara::core::Future ainsi que par ara::core::Promise pour signaler à l'appelant des états d'erreur dans le contexte d'opérations asynchrones. Sur le plan structurel, ara::core::FutureException dérive de la classe de base Exception et encapsule un code d'erreur propre au domaine.
Dans les scénarios de collaboration, ara::core::FutureException constitue le pont entre le point de terminaison asynchrone émetteur (comme ara::core::Promise), le point de terminaison consommateur (ara::core::Future) et le traitement des erreurs côté application. L'interaction de ces trois intervenants met en évidence le cadre structurel dans lequel l'exception est transmise pour le traitement des erreurs.
Diagramme de contexte : intégration d'ara::core::FutureException entre Promise, Future et le thread applicatif. Sources : [SWS_CORE_00412]
Cycle de vie
L'instanciation de ara::core::FutureException s'effectue explicitement via le constructeur en lui passant un code d'erreur de type ara::core::ErrorCode[SWS_CORE_00412]. La déclaration avec explicit interdit toute conversion de type implicite à partir d'un ara::core::ErrorCode. Le constructeur est désigné comme noexcept, ce qui garantit que la construction elle-même ne peut déclencher aucune exception supplémentaire [SWS_CORE_00412].
En ce qui concerne la sûreté d'exécution, la classe est spécifiée comme sûre vis-à-vis des exceptions (exception safe) [SWS_CORE_00412]. Pour le fonctionnement concurrent, la spécification qualifie en outre explicitement la construction de thread-safe [SWS_CORE_00412]. Cela permet aux opérations asynchrones d'instancier l'exception en toute sécurité au-delà des frontières des threads et de la transmettre aux récepteurs en attente.
Parcours d'utilisation
Le déroulement d'utilisation typique comprend la survenue d'une erreur lors d'une opération asynchrone jusqu'à l'interception de l'exception par l'appelant consommateur. La mise à disposition s'effectue typiquement via l'en-tête ara/core/future_error_domain.h[SWS_CORE_00412].
Diagramme de séquence : déroulement depuis la survenue de l'erreur jusqu'à l'interception, en passant par l'instanciation d'ara::core::FutureException. Sources : [SWS_CORE_00412]
Le déroulement d'utilisation s'articule selon les étapes suivantes :
Détection d'un échec ou d'un état non autorisé lors du traitement asynchrone en lien avec ara::core::Promise ou ara::core::Future.
Création de ara::core::FutureException au moyen du constructeur en indiquant le ara::core::ErrorCode spécifique [SWS_CORE_00412].
Transmission de l'exception au thread consommateur, où elle est interceptée dans le cadre d'un bloc try-catch et l'erreur contenue est analysée.
Scénarios d'erreur
Comme ara::core::FutureException représente elle-même le vecteur de signalement d'erreur, les scénarios d'erreur se limitent aux conditions de sa propre émergence. La désignation du constructeur par noexcept garantit qu'aucune erreur d'exécution sous la forme d'une exception secondaire ne peut survenir lors de la création de l'objet [SWS_CORE_00412]. La transmission d'un objet valide de type ara::core::ErrorCode en tant que paramètre constitue une précondition pour la construction err[SWS_CORE_00412]. Si une erreur survient lors du travail avec ara::core::Future ou ara::core::Promise, l'exception a pour but de transporter ce code d'erreur de façon inchangée vers les appels de niveau supérieur.
Ce guide se base sur AUTOSAR Adaptive Platform R25-11.
Diagramme de classes UML
Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.
gemini-3.8-flash-low· 2026-10-13 · Original allemand