Sert au signalement d'erreurs via des exceptions avec un code d'erreur lors de la fourniture de services de diagnostic.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 3b24259852fbProvenanceQuestions ouvertes (3)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
Sert au signalement d'erreurs via des exceptions avec un code d'erreur lors de la fourniture de services de diagnostic.
La classe ara::diag::DiagOfferException sert de type d'exception C++ spécifique, levé par les classes de diagnostic de l'AUTOSAR Adaptive Platform pour signaler des erreurs ([SWS_DM_00985]). Elle dérive de ara::core::Exception et est instanciée de manière thread-safe via un constructeur noexcept avec indication d'un ara::core::ErrorCode ([SWS_DM_00986]). L'exception se produit probablement en premier lieu lors d'un échec de la proposition de services de diagnostic et doit être interceptée par l'application appelante afin d'éviter un arrêt incontrôlé du processus. Question (ouverte)
Contexte
La classe ara::diag::DiagOfferException est un type d'exception central du module de diagnostic au sein de l'AUTOSAR Adaptive Platform ([SWS_DM_00985], SWS Diagnostics §8.11.6 « Class: DiagOfferException »). Conformément à sa spécification, il s'agit d'une exception levée par les classes de diagnostic (« Exception type thrown by Diag classes »). La classe dérive publiquement de la classe de base ara::core::Exception et doit être intégrée dans les applications via l'en-tête ara/diag/diag_error_domain.h ([SWS_DM_00986]).
Parmi les principaux partenaires d'interaction figurent les classes fonctionnelles de gestion du diagnostic, l'architecture d'erreurs sous-jacente d'AUTOSAR Adaptive (représentée par ara::core::ErrorCode) ainsi que le logiciel applicatif proposant des services de diagnostic. Le nom de la classe suggère que cette exception intervient probablement lorsque la proposition ou l'enregistrement de services de diagnostic par les classes Diag correspondantes échoue (interprétation). Question Q-47046201c9fd38c3 (ouverte)
Cycle de vie
L'instanciation de ara::diag::DiagOfferException s'effectue via son unique constructeur spécifié explicit DiagOfferException(ara::core::ErrorCode err) noexcept ([SWS_DM_00986], SWS Diagnostics §8.11.6.1.1.1 « DiagOfferException »). L'exception est alors directement liée à un code d'erreur concret. Le constructeur étant déclaré comme noexcept, il est garanti qu'aucune autre erreur ni exception récursive ne survient lors de la création de l'objet exception lui-même ([SWS_DM_00986]).
En ce qui concerne le cycle de vie, la classe est soumise aux mécanismes habituels de gestion des exceptions C++ : elle est créée sur la mémoire d'exception de l'environnement d'exécution, acheminée via la pile d'appels et automatiquement libérée après l'exécution du bloc catch de traitement. Selon la spécification, la construction est thread-safe et exception-safe ([SWS_DM_00986]). L'objet exception ne possède aucun changement d'état interne complexe après sa création ; il sert probablement d'enveloppe de transport immuable pour le code d'erreur transmis (interprétation). Question Q-09c6e0ad610717e9 (ouverte)
Parcours d'utilisation
Le déroulement typique lors de l'utilisation de ara::diag::DiagOfferException se divise dans les phases suivantes :
Une application appelle une méthode d'une classe de diagnostic afin de mettre à disposition un service ou un port de diagnostic (opération d'offre).
La classe de diagnostic détecte une condition d'erreur pendant l'initialisation ou l'enregistrement et instancie un ara::core::ErrorCode approprié.
La classe de diagnostic construit une instance de ara::diag::DiagOfferException en transmettant ce code d'erreur ([SWS_DM_00986]) et lève cette exception.
Le logiciel d'application appelant intercepte l'exception dans le cadre d'un bloc try-catch.
L'appelant extrait le code d'erreur de l'exception et déclenche des stratégies de repli ou de réessai appropriées.
Diagramme de séquence : déroulement typique lors du signalement et du traitement d'une erreur via DiagOfferException. Sources : [SWS_DM_00985], [SWS_DM_00986].
Scénarios d'erreur
ara::diag::DiagOfferException sert elle-même de mécanisme de signalement pour les situations d'erreur. Comme précondition pour l'instanciation, l'instance appelante doit disposer d'un ara::core::ErrorCode valide ([SWS_DM_00986]). Comme le constructeur est défini comme noexcept, l'instanciation n'entraîne en aucun cas d'exceptions secondaires ([SWS_DM_00986]).
Si une DiagOfferException levée n'est pas interceptée par le logiciel applicatif, cela entraîne par défaut l'appel de std::terminate et ainsi le crash incontrôlé du processus. En raison de l'héritage de ara::core::Exception, il est probablement prévu qu'en plus de l'interception spécifique de ara::diag::DiagOfferException, un gestionnaire générique pour ara::core::Exception puisse également intervenir (interprétation), afin de garantir une tolérance aux pannes robuste au niveau du processus. Question Q-d0cf602a077c4dae (ouverte)
Ce guide se base sur la spécification AUTOSAR Adaptive R25-11 (module diag) et a été généré de manière automatisée pour autodocs.
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