DEENESPTFRRUARHIKOZHNL

klasse 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

User GuideAI-GEGENEREERD

Signaleert SOVD-specifieke diagnosefouten als uitzonderingsveilige exception met gekoppelde foutcode aan aanroepers.
DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 58783cae6416 Herkomst Open vragen (2)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

Signaleert SOVD-specifieke diagnosefouten als uitzonderingsveilige exception met gekoppelde foutcode aan aanroepers.

De klasse ara::diag::DiagSovdException dient als gespecialiseerd uitzonderingstype voor Service-Oriented Vehicle Diagnostics (SOVD) en wordt opgeworpen door diagnoseklassen in module diag voor foutsignalering [SWS_DM_01807]. Ze leidt af van ara::core::Exception en wordt bij foutsituaties expliciet geïnstantieerd met een ara::core::ErrorCode om foutinformatie via de C++-stack-unwinding over te dragen aan de aanroepende context [SWS_DM_01808]. Als centrale randvoorwaarde is de constructor gespecificeerd als noexcept, wat volledige uitzonderingsveiligheid en thread-safety bij de objectcreatie waarborgt.

Context

De klasse ara::diag::DiagSovdException vormt het centrale uitzonderingstype voor Service-Oriented Vehicle Diagnostics (SOVD) in de diagnosemodule van het AUTOSAR Adaptive Platform ([SWS_DM_01807], SWS Diagnostics §8.51.4 “Class: DiagSovdException”). Ze wordt opgeworpen door interne diagnoseklassen om specifieke fouttoestanden tijdens de verwerking van SOVD-verzoeken aan te geven ([SWS_DM_01807], SWS Diagnostics, p. 69).

De klasse leidt publiek af van de algemene basisuitzondering ara::core::Exception ([SWS_DM_01807], SWS Diagnostics §8.51.4). Tot haar directe interactiepartners behoren functionele diagnoseklassen van de module diag, die diagnoseverzoeken analyseren en bij fouten uitzonderingen opwerpen, evenals de aanroepende applicatiesoftware die dergelijke uitzonderingen moet afvangen en verwerken. De klasse is gedeclareerd in header ara/diag/diag_sovd_error_domain.h om te voldoen aan overkoepelende architectuurvereisten ([SWS_DM_01808], SWS Diagnostics §8.51.4.1.1.1 “DiagSovdException”).

Levenscyclus

De instantiëring van ara::diag::DiagSovdException vindt plaats via een constructor die verplicht een ara::core::ErrorCode als parameter err accepteert ([SWS_DM_01808], SWS Diagnostics §8.51.4.1.1.1). Deze constructor is gedeclareerd als explicit om impliciete conversies van foutcodes naar uitzonderingsobjecten te voorkomen, en aangeduid als noexcept ([SWS_DM_01808]).

Wat betreft robuustheid en gelijktijdigheid garandeert de specificatie dat de constructie volledig uitzonderingsveilig (exception safe) en thread-safe is ([SWS_DM_01808]). Daardoor is gegarandeerd dat het genereren van fouten zelfs in gelijktijdige diagnosescenario's geen verdere uitzonderingen of inconsistenties veroorzaakt. De levenscyclus van de uitzondering volgt de standaard stack-unwinding van C++: het object wordt bij een fout binnen een diagnosefunctie gecreëerd, doorgegeven via aanroepniveaus en deterministisch vernietigd bij het verlaten van het afhandelende catch-blok.

Gebruikspad

Het typische verloop bij het gebruik van ara::diag::DiagSovdException is onderverdeeld in de volgende stappen:

  • Een applicatie initieert een SOVD-gerelateerde diagnoseoperatie op een interface van module diag.
  • De bevoegde diagnosecomponent stelt een foutieve conditie vast en genereert een passende ara::core::ErrorCode uit het SOVD-foutdomein ([SWS_DM_01808]).
  • De component construeert de uitzondering met behulp van explicit DiagSovdException(err) en werpt deze op ([SWS_DM_01808], [SWS_DM_01807]).
  • De applicatie vangt de uitzondering af via catch (const ara::diag::DiagSovdException& ex) of polymorf via const ara::core::Exception& om te reageren op de fouttoestand.
Verloop van de exceptieafhandeling met DiagSovdExceptionAnwendungDiagnoseklasseDiagSovdExceptionSOVD-diagnoseaanroep uitvoerenSOVD-Fehlerbedingung feststellenara::core::ErrorCode erzeugenDiagSovdException(err) konstruierenthrow DiagSovdExceptioncatch (const DiagSovdException& ex)Fout analyseren en afhandelen

Sequentiediagram: Aanroep- en afhandelingsvolgorde bij het opwerpen van een DiagSovdException. Bronnen: [SWS_DM_01807], [SWS_DM_01808].

Foutscenario's

Als fouttransporteur dient de klasse zelf voor de behandeling van uitzonderingstoestanden ([SWS_DM_01807]). Als formele voorwaarde voor het aanmaken geldt het beschikbaar stellen van een geïnitialiseerde ara::core::ErrorCode ([SWS_DM_01808]). Aangezien de constructor als noexcept is gedeclareerd, treden bij de objectcreatie zelf geen uitzonderingen op ([SWS_DM_01808]).

Interpretatie: Vermoedelijk kapselt de instantie de doorgegeven foutcode permanent in, zodat downstream foutafhandelaars deze kunnen inspecteren via overgeërfde functies van ara::core::Exception. Vraag Q-332b95b96849e379 (open) In systeemconfiguraties waarin C++-uitzonderingen zijn uitgeschakeld, geeft de diagnosecomponent vermoedelijk de voorkeur aan alternatieve foutmechanismen, terwijl DiagSovdException het specifieke pad voor uitzonderingsafhandeling vormt.

Deze handleiding is gebaseerd op de specificatie AUTOSAR Adaptive Platform R25-11 en vat de vereisten voor de uitzonderingsafhandeling van SOVD samen.

UML-klassendiagram

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

Constructors en destructor

Construct a new DiagSovdException from an ErrorCode.

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

Documentatie van de methoden

functie 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#8f85f8fa
Content hash
8f85f8fa
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