DEENESPTFRRUARHIKOZHNL

klasse ara::per::PerException

[SWS_PER_00354] Upstream: RS_AP_00122, RS_AP_00127

class PerException :            public ara::core::Exception {...};

Exception type thrown by Persistency.

Header-Datei#include "ara/per/per_error_domain.h"
Forwarding-Header#include "ara/per/per_fwd.h"
Scopenamespace ara::per
Basisklasse(n)ara::core::Exception

User GuideAI-GEGENEREERD

Dient voor het inkapselen en signaleren van fouten uit de persistente-opslagmodule aan de hand van een specifieke foutcode.
DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: abab05ca22f0 Herkomst Open 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.

G nara__per__PerException768 PerException + PerException() nara__core__Exception792 Exception nara__per__PerException768->nara__core__Exception792 nstd__exception10 std::exception nara__core__Exception792->nstd__exception10

Constructors en destructor

PerException functie

Construct a new Persistency exception object containing an error code.

explicit PerException (ara::core::ErrorCode errorCode) noexcept;

Documentatie van de methoden

functie PerException [SWS_PER_00355] Upstream: RS_AP_00120, RS_AP_00121, RS_AP_00135, RS_AP_00159

explicit PerException (ara::core::ErrorCode errorCode) noexcept;

Construct a new Persistency exception object containing an error code.

Header-Datei#include "ara/per/per_error_domain.h"
Scopeclass ara::per::PerException
Exception-Sicherheitexception safe
Thread-Sicherheitthread-safe

Parameter (in)

ParameterBeschreibung
errorCodeThe error code.

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_PER_00355
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_PER_00355@rel:R25-11#3b2744a9
Content hash
3b2744a9
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Persistency.pdf#nameddest=SWS_PER_00355
Status: valid/unmigrated Version: rel:R25-11#de57fc23 Versionshistorie & Revisions (1 transition, 8 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_PER_00355@rel:R25-11#de57fc23
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#f5dacf6e2026-09-30
  • R19-11rel:R19-11#606e44052026-10-14
  • R20-11rel:R20-11#bf89ad122026-10-14
  • R21-11rel:R21-11#bf89ad122026-10-14
  • R22-11rel:R22-11#b5d8215d2026-10-14
  • R23-11rel:R23-11#9889dc0a2026-10-14
  • R24-11rel:R24-11#de57fc232026-10-14
  • R25-11rel:R25-11#de57fc232026-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