DEENESPTFRRUARHIKOZHNL

classe ara::diag::DiagSovdException

[SWS_DM_01807] Upstream: RS_AP_00119

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

Exception type for SOVD thrown by Diag classes.

Header-Datei#include "ara/diag/diag_sovd_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

Signale les erreurs de diagnostic spécifiques à SOVD aux appelants sous la forme d'une exception sûre vis-à-vis des exceptions avec un code d'erreur associé.
GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 58783cae6416 Provenance Questions ouvertes (2)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

Signale les erreurs de diagnostic spécifiques à SOVD aux appelants sous la forme d'une exception sûre vis-à-vis des exceptions avec un code d'erreur associé.

La classe ara::diag::DiagSovdException sert de type d'exception spécialisé pour le diagnostic de véhicule orienté services (Service-Oriented Vehicle Diagnostics, SOVD) et est levée par les classes de diagnostic du module diag pour la signalisation des erreurs [SWS_DM_01807]. Elle dérive de ara::core::Exception et est explicitement instanciée avec un ara::core::ErrorCode en cas de situation d'erreur afin de transmettre les informations d'erreur au contexte appelant via le déroulement de pile C++ [SWS_DM_01808]. Comme contrainte centrale, le constructeur est spécifié comme étant noexcept, garantissant ainsi une sécurité complète vis-à-vis des exceptions ainsi que la sécurité vis-à-vis des threads lors de la création de l'objet.

Contexte

La classe ara::diag::DiagSovdException représente le type d'exception central pour le diagnostic de véhicule orienté services (SOVD) dans le module Diagnostics de l'AUTOSAR Adaptive Platform ([SWS_DM_01807], SWS Diagnostics §8.51.4 « Class: DiagSovdException »). Elle est déclenchée par des classes de diagnostic internes pour indiquer des états d'erreur spécifiques pendant le traitement de requêtes SOVD ([SWS_DM_01807], SWS Diagnostics, p. 69).

La classe dérive publiquement de l'exception de base générale ara::core::Exception ([SWS_DM_01807], SWS Diagnostics §8.51.4). Parmi ses partenaires d'interaction directs figurent les classes de diagnostic fonctionnelles du module diag, qui analysent les requêtes de diagnostic et lèvent des exceptions en cas d'erreur, ainsi que le logiciel d'application appelant, qui doit intercepter et traiter ces exceptions. La classe est déclarée dans l'en-tête ara/diag/diag_sovd_error_domain.h afin de répondre aux exigences architecturales de niveau supérieur ([SWS_DM_01808], SWS Diagnostics §8.51.4.1.1.1 « DiagSovdException »).

Cycle de vie

L'instanciation de ara::diag::DiagSovdException s'effectue via un constructeur qui reçoit obligatoirement un ara::core::ErrorCode comme paramètre err ([SWS_DM_01808], SWS Diagnostics §8.51.4.1.1.1). Ce constructeur est déclaré comme explicit afin d'empêcher les conversions implicites de codes d'erreur en objets d'exception, et marqué comme noexcept ([SWS_DM_01808]).

En matière de robustesse et de concurrence, la spécification garantit que la construction est totalement sûre vis-à-vis des exceptions (exception safe) et thread-safe ([SWS_DM_01808]). Ainsi, il est garanti que la génération d'erreurs elle-même ne provoque pas d'autres exceptions ou incohérences, même dans des scénarios de diagnostic concurrents. Le cycle de vie de l'exception suit le déroulement de pile standard du C++ : l'objet est créé en cas d'erreur au sein d'une fonction de diagnostic, transmis à travers les niveaux d'appel et détruit de manière déterministe lors de la sortie du bloc catch de traitement.

Parcours d'utilisation

Le déroulement typique lors de l'utilisation de ara::diag::DiagSovdException s'articule selon les étapes suivantes :

  • Une application initie une opération de diagnostic liée à SOVD sur une interface du module diag.
  • Le composant de diagnostic compétent constate une condition d'erreur et génère un ara::core::ErrorCode approprié à partir du domaine d'erreur SOVD ([SWS_DM_01808]).
  • Le composant construit l'exception au moyen de explicit DiagSovdException(err) et la lève ([SWS_DM_01808], [SWS_DM_01807]).
  • L'application intercepte l'exception via catch (const ara::diag::DiagSovdException& ex) ou de manière polymorphe via const ara::core::Exception& afin de réagir à l'état d'erreur.
Déroulement du traitement des exceptions avec DiagSovdExceptionApplicationDiagnoseklasseDiagSovdExceptionExécuter un appel de diagnostic SOVDSOVD-Fehlerbedingung feststellenara::core::ErrorCode erzeugenDiagSovdException(err) konstruierenthrow DiagSovdExceptioncatch (const DiagSovdException& ex)Analyser et traiter l’erreur

Diagramme de séquence : Séquence d'appel et de traitement lors du déclenchement d'une DiagSovdException. Sources : [SWS_DM_01807], [SWS_DM_01808].

Scénarios d'erreur

En tant que transporteur d'erreur, la classe sert elle-même au traitement d'états d'exception ([SWS_DM_01807]). La mise à disposition d'un ara::core::ErrorCode initialisé constitue une précondition formelle pour la création ([SWS_DM_01808]). Comme le constructeur est déclaré en tant que noexcept, aucune exception ne survient lors de la création même de l'objet ([SWS_DM_01808]).

Interprétation : l'instance encapsule vraisemblablement le code d'erreur transmis de façon permanente, de sorte que les gestionnaires d'erreurs en aval peuvent l'inspecter via les fonctions héritées de ara::core::Exception. Question Q-332b95b96849e379 (ouverte) Dans les configurations de système où les exceptions C++ sont désactivées, le composant de diagnostic devrait privilégier des mécanismes d'erreur alternatifs, tandis que DiagSovdException constitue le chemin dédié aux traitements par exceptions.

Ce guide se base sur la spécification AUTOSAR Adaptive Platform R25-11 et résume les exigences relatives au traitement des exceptions de SOVD.

Diagramme de classes UML

Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.

G nara__diag__DiagSovdException335 DiagSovdException + DiagSovdException() nara__core__Exception792 Exception nara__diag__DiagSovdException335->nara__core__Exception792 nstd__exception10 std::exception nara__core__Exception792->nstd__exception10

Constructeurs et destructeur

Construct a new DiagSovdException from an ErrorCode.

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

Documentation des méthodes

fonction DiagSovdException [SWS_DM_01808] Upstream: RS_AP_00119

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

Construct a new DiagSovdException from an ErrorCode.

Header-Datei#include "ara/diag/diag_sovd_error_domain.h"
Scopeclass ara::diag::DiagSovdException
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_01808
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01808@rel:R25-11#983c6ed1
Content hash
983c6ed1
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01808
Status: valid/unmigrated Version: rel:R25-11#e8244057 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_01808@rel:R25-11#e8244057
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#76e1ec2d2026-09-30
  • R23-11rel:R23-11#62167f502026-10-14
  • R24-11rel:R24-11#e82440572026-10-14
  • R25-11rel:R25-11#e82440572026-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