DEENESPTFRRUARHIKOZHNL

classe ara::diag::DiagException

[SWS_DM_00515] Upstream: RS_AP_00119

class DiagException :            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 à 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 IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 61473cb95c98 Provenance Questions 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 :

Déroulement lors du déclenchement et du traitement d'une DiagExceptionApplicationara::diag-KlasseDiagExceptionDiagnosefunktion aufrufenUse Case: Cas d'erreur dans le cluster de diagnosticDiagException(err) instanziierenthrow DiagExceptionTraiter l'exception dans le bloc catch

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.

G nara__diag__DiagException942 DiagException + DiagException() nara__core__Exception792 Exception nara__diag__DiagException942->nara__core__Exception792 nstd__exception10 std::exception nara__core__Exception792->nstd__exception10

Constructeurs et destructeur

DiagException fonction

Construct a new DiagException from an ErrorCode.

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

Documentation des méthodes

fonction DiagException [SWS_DM_00516] Upstream: RS_AP_00119

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

Construct a new DiagException from an ErrorCode.

Header-Datei#include "ara/diag/diag_error_domain.h"
Scopeclass ara::diag::DiagException
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_00516
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00516@rel:R25-11#59c98218
Content hash
59c98218
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00516
Status: valid/unmigrated Version: rel:R25-11#6bef63b1 Versionshistorie & Revisions (1 transition, 7 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_00516@rel:R25-11#6bef63b1
Point-in-Time History:
Recorded Revisions (7):
  • R25-11rel:R25-11#027392ad2026-09-30
  • R20-11rel:R20-11#f80be4a32026-10-14
  • R21-11rel:R21-11#e1dfd6d02026-10-14
  • R22-11rel:R22-11#c06b421b2026-10-14
  • R23-11rel:R23-11#d17f9fbb2026-10-14
  • R24-11rel:R24-11#6bef63b12026-10-14
  • R25-11rel:R25-11#6bef63b12026-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