Dient voor het inkapselen en doorsturen van diagnose-foutcodes als C++-uitzondering naar bovenliggende functie-aanroepers.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 61473cb95c98HerkomstOpen vragen (2)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
Dient voor het inkapselen en doorsturen van diagnose-foutcodes als C++-uitzondering naar bovenliggende functie-aanroepers.
De klasse ara::diag::DiagException fungeert als gespecialiseerd uitzonderingstype voor het signaleren van fouten uit diagnoseklassen van het AUTOSAR Adaptive Platform ([SWS_DM_00515]). Deze kapselt een ara::core::ErrorCode in en wordt geworpen bij interne fouten om fouttoestanden gestructureerd door te sturen naar aanroepende applicaties ([SWS_DM_00516]). De constructor is thread-safe en door noexcept als uitzonderingsveilig gedeclareerd ([SWS_DM_00516]).
Context
De klasse ara::diag::DiagException vormt het centrale uitzonderingstype voor het functionele cluster van AUTOSAR Adaptive Platform Diagnostics (SWS Diagnostics §8.11.4 “Class: DiagException”, [SWS_DM_00515]). Deze is rechtstreeks afgeleid van de basisklasse ara::core::Exception en is ervoor verantwoordelijk fouttoestanden die binnen de diagnoseklassen optreden in uitzonderingsgevallen te melden aan de aanroeper. Primaire interactiepartners zijn de aanbiedende diagnoseklassen binnen ara::diag, die uitzonderingssituaties signaleren, evenals de gebruikende applicatiesoftware, die diagnose-operaties aanvraagt en potentiële uitzonderingen afvangt. Door de declaratie in het headerbestand ara/diag/diag_error_domain.h staat de uitzonderingsklasse in directe verbinding met de diagnosespecifieke foutdomeinen ([SWS_DM_00516]).
Levenscyclus
De instantiatie van ara::diag::DiagException vindt plaats door het overdragen van een foutcode van het type ara::core::ErrorCode aan de constructor ([SWS_DM_00516]). Deze constructor is gedefinieerd als explicit, waardoor impliciete typeconversies vanuit foutcodes worden voorkomen. Bovendien is de creatie gedeclareerd als noexcept, wat de uitzonderingsveiligheid (\"exception safe\") bij objectcreatie garandeert en voorkomt dat er tijdens het activeren van een uitzonderingstoestand nog een uitzondering wordt geworpen ([SWS_DM_00516]). Voor de aanroep van de constructor wordt thread-veiligheid (\"thread-safe\") gegarandeerd ([SWS_DM_00516]). Wat betreft de verdere levenscyclus bestaat het exception-object voor de duur van het stack-unwinding-proces tot aan de voltooiing van het bijbehorende catch-blok (interpretatie: het eigendom en de vernietiging van het uitzonderingsobject volgen de gestandaardiseerde mechanismen van de C++-runtime-omgeving). Vraag Q-ae485b4ea411b187 (open)
Gebruikspad
Het reguliere inzetpad van ara::diag::DiagException strekt zich uit van de detectie van een foutsituatie in het diagnosesubsysteem tot de evaluatie door de applicatielaag. Het volgende verloop verduidelijkt de interactie tussen de betrokken componenten:
Sequentiediagram: Typisch verloop bij het optreden, activeren en afhandelen van een DiagException. Bronnen: [SWS_DM_00515], [SWS_DM_00516].
De applicatie initieert eerst een operatie op een functionele klasse van de module ara::diag. Als er tijdens de verwerking een conditie optreedt die een regulier retourpad uitsluit, creëert de diagnoseklasse een instantie van ara::diag::DiagException onder vermelding van de specifieke ara::core::ErrorCode ([SWS_DM_00516]). Deze uitzondering wordt via het normale C++-uitzonderingsmechanisme geworpen. De aanroepende applicatie-instantie vangt het object af in een getypeerde exception handler om passende herstel- of loggingmaatregelen te initiëren.
Foutscenario's
Als foutsignaleringsklasse faciliteert ara::diag::DiagException primair het doorgeven van diagnostische fouttoestanden. Preconditie voor de succesvolle constructie is het beschikbaar stellen van een geïnitialiseerde parameter err van het type ara::core::ErrorCode ([SWS_DM_00516]). De uitzonderingsveiligheid van de constructor zorgt ervoor dat zelfs in situaties met kritieke resources geen secundaire uitzonderingen in het constructiepad worden geactiveerd ([SWS_DM_00516]). Na succesvolle instantiatie kapselt het object de doorgegeven foutcode volledig in (interpretatie: de concrete diagnose-foutcode wordt vermoedelijk via de overgeërfde basismechanismen van ara::core::Exception geïnspecteerd door de afvangende applicatielogica). Vraag Q-d20a61b72951321b (open)
Deze handleiding is gecureerd door een AI op basis van de specificatie AUTOSAR AP R25-11.
UML-klassendiagram
Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.
gemini-3.8-flash-low· 2026-10-13 · Duits origineel