Sert à signaler et à encapsuler les erreurs de la synchronisation temporelle sous la forme d'une exception avec son code d'erreur associé.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 02ba32fb22ccProvenanceQuestions ouvertes (2)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
Sert à signaler et à encapsuler les erreurs de la synchronisation temporelle sous la forme d'une exception avec son code d'erreur associé.
La classe d'exception ara::tsync::TsyncException sert à encapsuler et à relayer les erreurs survenant pendant la synchronisation temporelle au sein de l'Adaptive Platform. Elle dérive de ara::core::Exception et reçoit obligatoirement lors de sa construction un ara::core::ErrorCode spécifique décrivant la cause de l'erreur [SWS_TS_00903]. Le constructeur est déclaré comme noexcept, ce qui garantit que l'instanciation de l'exception s'exécute de manière sûre vis-à-vis des exceptions et thread-safe [SWS_TS_00903]. Les applications devraient intercepter l'exception dans leurs chemins de traitement des erreurs afin d'évaluer de manière ciblée le code d'erreur contenu. Question (ouverte)
Contexte
La classe ara::tsync::TsyncException représente la classe d'exception dédiée au domaine fonctionnel Time Synchronization (tsync) au sein de l'AUTOSAR Adaptive Platform. Selon la spécification, elle est déclarée dans l'en-tête ara/tsync/tsync_error_domain.h et sert de type central pour représenter les exceptions déclenchées par la synchronisation temporelle [SWS_TS_00903]. Grâce à sa dérivation publique depuis la classe de base ara::core::Exception, elle s'intègre harmonieusement dans l'architecture de traitement des erreurs à l'échelle de la plateforme.
Dans l'architecture système, ara::tsync::TsyncException assume le rôle de vecteur d'informations entre les composants d'implémentation du service de synchronisation temporelle et les modules applicatifs. Si une erreur grave survient dans le cadre de la synchronisation, celle-ci n'est pas rejetée de manière isolée, mais signalée sous la forme d'une exception normalisée. La classe coopère étroitement avec ara::core::ErrorCode, qui code et encapsule la cause concrète de l'erreur [SWS_TS_00903].
Diagramme de contexte : Positionnement de ara::tsync::TsyncException en interaction avec Time Synchronization, ara::core::ErrorCode et ara::core::Exception. Sources : [SWS_TS_00903]
Cycle de vie
Le cycle de vie d'une instance de ara::tsync::TsyncException débute par son instanciation explicite. La spécification prévoit à cet effet un constructeur acceptant exactement un code d'erreur de type ara::core::ErrorCode : explicit TsyncException(ara::core::ErrorCode errorCode) noexcept[SWS_TS_00903]. La déclaration sous forme de explicit empêche que des codes d'erreur soient implicitement et involontairement convertis en objets exception.
Pour la création d'objets, AUTOSAR formule des garanties strictes : la construction est expressément spécifiée comme sûre vis-à-vis des exceptions (exception safe) et thread-safe (thread-safe) [SWS_TS_00903]. Le mot-clé noexcept garantit que le constructeur ne lève lui-même sous aucune condition d'autre exception [SWS_TS_00903]. Ceci est essentiel, car la création d'exceptions a typiquement lieu dans le chemin de traitement des erreurs et un échec à cet endroit conduirait à un état système non contrôlé.
Après sa création, l'objet est soumis à la sémantique usuelle des exceptions C++ : il est propagé le long de la pile d'appels jusqu'à être intercepté par un gestionnaire approprié. La sortie du bloc catch marque la fin de la durée de vie de l'instance d'exception et les ressources sont libérées de manière déterministe.
Parcours d'utilisation
Le déroulement typique lors de l'utilisation de ara::tsync::TsyncException se divise en identification de l'erreur, création de l'objet et interception côté application :
Identification de l'erreur : la Time Synchronization détecte un écart ou un état d'erreur au moment de l'exécution et génère un ara::core::ErrorCode approprié [SWS_TS_00903].
Création et levée de l'exception : au moyen du constructeur, un objet ara::tsync::TsyncException est instancié avec le code d'erreur déterminé puis déclenché [SWS_TS_00903].
Interception de l'erreur : le composant appelant intercepte l'exception au sein d'un bloc structuré de traitement des exceptions.
Dans leurs applications, les développeurs devraient pouvoir traiter l'exception au choix de façon spécifique en tant que const ara::tsync::TsyncException& ou l'intercepter de manière polymorphe via la classe de base const ara::core::Exception&[SWS_TS_00903]. Question Q-0c8129359ef114e8 (ouverte) L'inclusion de l'en-tête ara/tsync/tsync_error_domain.h est requise pour accéder à la définition du type [SWS_TS_00903].
Scénarios d'erreur
En tant que classe d'exception, ara::tsync::TsyncException sert à la représentation explicite de scénarios d'erreur. L'élément central est ici le ara::core::ErrorCode encapsulé, qui fournit des informations détaillées sur la raison spécifique de l'erreur au sein du domaine d'erreur [SWS_TS_00903].
Une caractéristique essentielle réside dans l'absence de constructeur par défaut sans paramètre. Cela garantit qu'aucune instance d'exception ne peut exister sans code d'erreur associé [SWS_TS_00903]. La garantie noexcept du constructeur assure en outre que l'encapsulation et la signalisation de l'erreur ne sont pas parasitées par des exceptions secondaires [SWS_TS_00903].
Ce guide a été généré par une IA sur la base de la spécification AUTOSAR 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