Signaleert SOVD-specifieke diagnosefouten als uitzonderingsveilige exception met gekoppelde foutcode aan aanroepers.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 58783cae6416HerkomstOpen 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.
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.
gemini-3.8-flash-low· 2026-10-13 · Duits origineel