Dient voor het inkapselen en signaleren van fouten uit de persistente-opslagmodule aan de hand van een specifieke foutcode.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: abab05ca22f0HerkomstOpen vragen (2)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
Dient voor het inkapselen en signaleren van fouten uit de persistente-opslagmodule aan de hand van een specifieke foutcode.
De klasse ara::per::PerException dient in het AUTOSAR Adaptive Platform als specifiek exceptietype voor het signaleren van fouten uit de persistente-opslagmodule. Deze wordt beschikbaar gesteld via de header ara/per/per_error_domain.h en erft over van de basisklasse ara::core::Exception[SWS_PER_00355]. De instantiëring vindt expliciet plaats door overdracht van een ara::core::ErrorCode, die de concrete foutoorzaak inkapselt. Door de declaratie van de constructor als noexcept is het aanmaken volledig exceptieveilig en thread-veilig gespecificeerd [SWS_PER_00355].
Context
De klasse ara::per::PerException fungeert als centraal, gespecialiseerd exceptietype voor het functionele cluster van de persistentie (module per) binnen het AUTOSAR Adaptive Platform in release R25-11. Volgens de formele syntaxis is de klasse publiek afgeleid van de algemene basisexceptie ara::core::Exception. De primaire verantwoordelijkheid ervan bestaat uit het signaleren van ernstige fouttoestanden, of fouttoestanden die niet direct via reguliere retourwaarden kunnen worden afgehandeld, vanuit het persistentiesubsysteem naar bovenliggende applicatielagen. De klasse wordt gedefinieerd in de header ara/per/per_error_domain.h[SWS_PER_00355]. In de architectuur heeft deze een nauwe wisselwerking met de foutafhandelingsinfrastructuur van het platform, doordat elke instantie voor een nauwkeurige foutdiagnose een ara::core::ErrorCode transporteert [SWS_PER_00355].
Levenscyclus
De levenscyclus van een ara::per::PerException-object is direct gekoppeld aan de detectie en doorgifte van een fout binnen persistentieoperaties. De instantiëring vindt plaats via een expliciete constructor die precies één parameter van het type ara::core::ErrorCode accepteert [SWS_PER_00355]. Deze constructor is gedeclareerd als explicit om impliciete typeconversies vanuit foutcodes te voorkomen, en is voorzien van de specificatie noexcept[SWS_PER_00355]. Dit waarborgt dat er tijdens de constructie van het exceptie-object zelf geen verdere excepties kunnen optreden; het aanmaken is zodoende volledig exceptieveilig (exception safe) [SWS_PER_00355].
Met betrekking tot gelijktijdigheid is het aanmaken van ara::per::PerException gespecificeerd als thread-veilig (thread-safe) [SWS_PER_00355]. Na de aanroep van de constructor wordt het object langs de callstack geworpen. Eigendomsverhoudingen en vernietiging volgen de standaard C++-regels voor exceptieafhandeling: Het object blijft in het geheugengebied van het runtimesysteem totdat het opvangende catch-blok is beëindigd, en wordt aansluitend deterministisch vernietigd.
Gebruikspad
Het typische verloop bij het gebruik van ara::per::PerException is onderverdeeld in de volgende stappen:
Foutdetectie en aanmaken van de code: De persistente-opslagmodule identificeert een ontoelaatbare toestand of het mislukken van een opslagoperatie en beeldt deze af in een bijbehorende ara::core::ErrorCode.
Instantiëring: Onder overdracht van deze foutcode wordt het exceptie-object expliciet aangemaakt via PerException(errorCode)[SWS_PER_00355].
Activeren van de exceptie: Het persistentiesubsysteem werpt de exceptie-instantie vanuit de getroffen functie-interface.
Opvangen en evalueren: De aanroepende applicatie vangt het object specifiek op als ara::per::PerException of polymorf als ara::core::Exception respectievelijk std::exception. Interpretatie: De applicatie zal aansluitend vermoedelijk via de van de basisklasse overgeërfde toegangsmethoden de ingekapselde ara::core::ErrorCode uitlezen om gerichte herstelmaatregelen in te leiden. Vraag Q-6e48fd125d9938d8 (open)
Foutscenario's
Aangezien ara::per::PerException dient voor de weergave van fouten, staan bij foutscenario's de robuustheid van het aanmaken van objecten en de integriteit van de foutinformatie op de voorgrond. Als wezenlijke voorwaarde vereist de constructor een geldige ara::core::ErrorCode als invoerparameter [SWS_PER_00355]. Doordat de constructor is gedeclareerd als noexcept, is uitgesloten dat er tijdens de foutrapportage secundaire excepties optreden [SWS_PER_00355]. Bovendien garandeert de gespecificeerde thread-veiligheid dat ook bij parallelle fouten in meerdere executiethreads geen datacorruptie of ongecoördineerde neveneffecten ontstaan [SWS_PER_00355].
Deze handleiding is uitsluitend gebaseerd op de specificatiegegevens van de AUTOSAR Adaptive Platform Release 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