DEENESPTFRRUARHIKOZHNL

classe ara::diag::DiagOfferException

[SWS_DM_00985] Upstream: RS_AP_00119

class DiagOfferException :           public ara::core::Exception {...};

Exception type thrown by Diag classes.

Header-Datei#include "ara/diag/diag_error_domain.h"
Forwarding-Header#include "ara/diag/diag_fwd.h"
Scopenamespace ara::diag
Basisklasse(n)ara::core::Exception

Guide utilisateurGÉNÉRÉ PAR IA

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 IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 3b24259852fb Provenance Questions 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.
Traitement d'erreur en cas d'échec de mise à disposition via DiagOfferExceptionApplicationDiag-KlasseDiagOfferExceptionDienst anbieten (Offer)Fehler festgestellt: ErrorCode erzeugenDiagOfferException(err)throw DiagOfferExceptioncatch (const DiagOfferException& e)Évaluer et traiter l'ErrorCode

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.

G nara__diag__DiagOfferException442 DiagOfferException + DiagOfferException() nara__core__Exception792 Exception nara__diag__DiagOfferException442->nara__core__Exception792 nstd__exception10 std::exception nara__core__Exception792->nstd__exception10

Constructeurs et destructeur

Construct a new DiagException from an ErrorCode.

explicit DiagOfferException (ara::core::ErrorCode err) noexcept;

Documentation des méthodes

fonction DiagOfferException [SWS_DM_00986] Upstream: RS_AP_00119

explicit DiagOfferException (ara::core::ErrorCode err) noexcept;

Construct a new DiagException from an ErrorCode.

Header-Datei#include "ara/diag/diag_error_domain.h"
Scopeclass ara::diag::DiagOfferException
Exception-Sicherheitexception safe
Thread-Sicherheitthread-safe

Parameter (in)

ParameterBeschreibung
errthe ErrorCode

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_DM_00986
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00986@rel:R25-11#7ee23913
Content hash
7ee23913
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00986
Status: valid/unmigrated Version: rel:R25-11#5fd23a99 Versionshistorie & Revisions (1 transition, 4 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_DM_00986@rel:R25-11#5fd23a99
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#346e60702026-09-30
  • R23-11rel:R23-11#f79e89952026-10-14
  • R24-11rel:R24-11#5fd23a992026-10-14
  • R25-11rel:R25-11#5fd23a992026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill