Dient voor foutsignalering via uitzonderingen met een foutcode bij het beschikbaar stellen van diagnosediensten.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 3b24259852fbHerkomstOpen vragen (3)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
Dient voor foutsignalering via uitzonderingen met een foutcode bij het beschikbaar stellen van diagnosediensten.
De klasse ara::diag::DiagOfferException dient als specifiek C++-uitzonderingstype dat door diagnoseklassen van het AUTOSAR Adaptive Platform wordt geworpen voor het signaleren van fouten ([SWS_DM_00985]). Deze is afgeleid van ara::core::Exception en wordt via een noexcept-constructor onder opgave van een ara::core::ErrorCode thread-veilig geïnstantieerd ([SWS_DM_00986]). De uitzondering treedt vermoedelijk primair op bij het mislukken van het aanbieden van diagnosediensten en moet door de aanroepende applicatie worden afgevangen om een ongecontroleerde procesbeëindiging te voorkomen. Vraag (open)
Context
De klasse ara::diag::DiagOfferException is een centraal uitzonderingstype van de diagnosemodule binnen het AUTOSAR Adaptive Platform ([SWS_DM_00985], SWS Diagnostics §8.11.6 “Class: DiagOfferException”). Volgens de specificatie betreft het een uitzondering die door diagnoseklassen wordt geworpen (\"Exception type thrown by Diag classes\"). De klasse is publiek afgeleid van de basisklasse ara::core::Exception en moet via de header ara/diag/diag_error_domain.h in applicaties worden opgenomen ([SWS_DM_00986]).
Tot de primaire interactiepartners behoren functionele klassen van het diagnosebeheer, de onderliggende foutarchitectuur van AUTOSAR Adaptive (gerepresenteerd door ara::core::ErrorCode) en de toepassende software die diagnosediensten aanbiedt. De klassenaam suggereert dat deze uitzondering vermoedelijk wordt gebruikt wanneer het aanbieden of registreren van diagnosediensten door overeenkomstige Diag-klassen mislukt (interpretatie). Vraag Q-47046201c9fd38c3 (open)
Levenscyclus
De instantiatie van ara::diag::DiagOfferException geschiedt via de enige gespecificeerde constructor explicit DiagOfferException(ara::core::ErrorCode err) noexcept ([SWS_DM_00986], SWS Diagnostics §8.11.6.1.1.1 “DiagOfferException”). Daarbij wordt de uitzondering rechtstreeks aan een concrete foutcode gekoppeld. Omdat de constructor gedeclareerd is als noexcept, is gegarandeerd dat bij de creatie van het uitzonderingsobject zelf geen verdere fouten of recursieve uitzonderingen optreden ([SWS_DM_00986]).
Wat betreft de levenscyclus is de klasse onderworpen aan de gebruikelijke mechanismen van C++-uitzonderingsafhandeling: deze wordt aangemaakt in het exception-geheugen van de runtime-omgeving, via de callstack getransporteerd en na afhandeling van het behandelende catch-blok automatisch vrijgegeven. Volgens de specificatie is de constructie thread-safe en exception-safe ([SWS_DM_00986]). Het uitzonderingsobject kent na creatie geen complexe interne toestandswisselingen; het fungeert vermoedelijk als een onveranderlijke transportlaag voor de overgedragen foutcode (interpretatie). Vraag Q-09c6e0ad610717e9 (open)
Gebruikspad
Het typische verloop bij het gebruik van ara::diag::DiagOfferException is onderverdeeld in de volgende fasen:
Een applicatie roept een methode van een diagnoseklasse aan om een diagnosedienst of -poort beschikbaar te stellen (offer-operatie).
De diagnoseklasse stelt tijdens de initialisatie of registratie een foutconditie vast en instantieert een passende ara::core::ErrorCode.
De diagnoseklasse construeert een instantie van ara::diag::DiagOfferException onder overdracht van deze foutcode ([SWS_DM_00986]) en werpt deze uitzondering.
De aanroepende applicatiesoftware vangt de uitzondering af binnen een try-catch-blok.
De aanroeper extraheert de foutcode uit de uitzondering en initieert geschikte uitval- of herhalingsstrategieën.
Sequentiediagram: Typisch verloop bij de signalering en afhandeling van een fout via DiagOfferException. Bronnen: [SWS_DM_00985], [SWS_DM_00986].
Foutscenario's
ara::diag::DiagOfferException dient zelf als signaleringsmechanisme voor foutsituaties. Als voorwaarde voor instantiëring moet de aanroepende instantie over een geldige ara::core::ErrorCode beschikken ([SWS_DM_00986]). Aangezien de constructor gedefinieerd is als noexcept, leidt de instantiëring onder geen enkele voorwaarde tot secundaire uitzonderingen ([SWS_DM_00986]).
Wordt een geworpen DiagOfferException niet afgevangen door de toepassingssoftware, dan leidt dit standaard tot het aanroepen van std::terminate en daarmee tot het ongecontroleerd crashen van het proces. Door overerving van ara::core::Exception is het vermoedelijk de bedoeling dat naast het specifiek afvangen van ara::diag::DiagOfferException ook een generieke handler voor ara::core::Exception kan ingrijpen (interpretatie), om robuuste fouttolerantie op procesniveau te waarborgen. Vraag Q-d0cf602a077c4dae (open)
Deze handleiding is gebaseerd op de specificatie AUTOSAR Adaptive R25-11 (module diag) en is geautomatiseerd gegenereerd voor autodocs.
UML-klassendiagram
Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.
gemini-3.8-flash-low· 2026-10-13 · Duits origineel