Sert à encapsuler et à relayer des codes d'erreur de diagnostic sous la forme d'une exception C++ aux appelants de fonctions de niveau supérieur.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 61473cb95c98ProvenanceQuestions ouvertes (2)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
Sert à encapsuler et à relayer des codes d'erreur de diagnostic sous la forme d'une exception C++ aux appelants de fonctions de niveau supérieur.
La classe ara::diag::DiagException fait office de type d'exception spécialisé pour signaler les erreurs issues des classes de diagnostic de l'AUTOSAR Adaptive Platform ([SWS_DM_00515]). Elle encapsule un ara::core::ErrorCode et est levée en cas d'erreurs internes afin de transmettre les états d'erreur de manière structurée aux applications appelantes ([SWS_DM_00516]). Son constructeur est thread-safe et déclaré sûr vis-à-vis des exceptions par noexcept ([SWS_DM_00516]).
Contexte
La classe ara::diag::DiagException constitue le type d'exception central pour le cluster fonctionnel de l'AUTOSAR Adaptive Platform Diagnostics (SWS Diagnostics §8.11.4 « Class: DiagException », [SWS_DM_00515]). Elle dérive directement de la classe de base ara::core::Exception et est responsable du signalement des états d'erreur survenant au sein des classes de diagnostic à l'appelant en cas d'exception. Les principaux partenaires d'interaction sont les classes de diagnostic fournisseuses au sein de ara::diag, qui signalent les situations exceptionnelles, ainsi que le logiciel d'application utilisateur, qui requiert des opérations de diagnostic et intercepte les exceptions potentielles. Grâce à la déclaration dans le fichier d'en-tête ara/diag/diag_error_domain.h, la classe d'exception est en liaison directe avec les domaines d'erreur spécifiques au diagnostic ([SWS_DM_00516]).
Cycle de vie
L'instanciation de ara::diag::DiagException s'effectue en passant un code d'erreur de type ara::core::ErrorCode au constructeur ([SWS_DM_00516]). Ce constructeur est défini comme explicit, ce qui interdit les conversions de type implicites à partir de codes d'erreur. De plus, la création est déclarée comme noexcept, ce qui garantit la sécurité vis-à-vis des exceptions (« exception safe ») lors de la création de l'objet et empêche qu'une autre exception ne soit levée pendant le déclenchement d'un état d'exception ([SWS_DM_00516]). La sécurité des threads (« thread-safe ») est garantie pour l'appel du constructeur ([SWS_DM_00516]). En ce qui concerne le cycle de vie ultérieur, l'objet exception existe pendant la durée du processus de déroulement de pile jusqu'à l'achèvement du bloc catch associé (interprétation : les relations de propriété et la destruction de l'objet exception suivent les mécanismes standardisés de l'environnement d'exécution C++). Question Q-ae485b4ea411b187 (ouverte)
Parcours d'utilisation
Le chemin d'utilisation habituel de ara::diag::DiagException s'étend de la détection d'une situation d'erreur dans le sous-système de diagnostic jusqu'à son évaluation par le niveau applicatif. Le déroulement suivant illustre l'interaction des composants impliqués :
Diagramme de séquence : déroulement typique lors de l'apparition, du déclenchement et du traitement d'une DiagException. Sources : [SWS_DM_00515], [SWS_DM_00516].
L'application initie d'abord une opération sur une classe fonctionnelle du module ara::diag. Si une condition excluant un chemin de retour normal survient pendant le traitement, la classe de diagnostic crée une instance de ara::diag::DiagException en indiquant le ara::core::ErrorCode spécifique ([SWS_DM_00516]). Cette exception est levée via le mécanisme habituel des exceptions C++. L'instance d'application appelante intercepte l'objet dans un gestionnaire d'exceptions typé afin d'initier des mesures de récupération ou de journalisation appropriées.
Scénarios d'erreur
En tant que classe de signalement d'erreurs, ara::diag::DiagException sert principalement à relayer les états d'erreur de diagnostic. La précondition pour une construction réussie est la fourniture d'un paramètre err initialisé de type ara::core::ErrorCode ([SWS_DM_00516]). La sécurité vis-à-vis des exceptions du constructeur garantit qu'aucune exception secondaire n'est déclenchée dans le chemin de construction, même dans des situations critiques en matière de ressources ([SWS_DM_00516]). Après une instanciation réussie, l'objet encapsule entièrement le code d'erreur transmis (interprétation : le code d'erreur de diagnostic concret est probablement inspecté par la logique applicative d'interception via les mécanismes de base hérités de ara::core::Exception). Question Q-d20a61b72951321b (ouverte)
Ce guide a été élaboré par une IA sur la base de la spécification AUTOSAR AP 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