DEENESPTFRRUARHIKOZHNL

class 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 GuideKI-GENERIERT

Dient der Kapselung und Signalisierung von Fehlern aus dem Persistenzmodul anhand eines spezifischen Fehlercodes.
KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: abab05ca22f0 Herkunft Offene Fragen (2)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Dient der Kapselung und Signalisierung von Fehlern aus dem Persistenzmodul anhand eines spezifischen Fehlercodes.

Die Klasse ara::per::PerException dient in der AUTOSAR Adaptive Platform als spezifischer Ausnahmetyp zur Signalisierung von Fehlern aus dem Persistenzmodul. Sie wird über den Header ara/per/per_error_domain.h bereitgestellt und erbt von der Basisklasse ara::core::Exception [SWS_PER_00355]. Die Instanziierung erfolgt explizit durch Übergabe eines ara::core::ErrorCode, welcher die konkrete Fehlerursache kapselt. Durch die Deklaration des Konstruktors als noexcept ist die Erzeugung vollständig ausnahmesicher sowie threadsicher spezifiziert [SWS_PER_00355].

Kontext

Die Klasse ara::per::PerException fungiert als zentraler, spezialisierter Ausnahmetyp für das funktionale Cluster der Persistenz (Modul per) innerhalb der AUTOSAR Adaptive Platform im Release R25-11. Laut ihrer formalen Syntax ist die Klasse öffentlich von der allgemeinen Basisausnahme ara::core::Exception abgeleitet. Ihre primäre Verantwortung besteht darin, schwerwiegende oder nicht unmittelbar über reguläre Rückgabewerte behandelbare Fehlerzustände aus dem Persistenz-Subsystem an übergeordnete Applikationsschichten zu signalisieren. Definiert wird die Klasse im Header ara/per/per_error_domain.h [SWS_PER_00355]. In der Architektur interagiert sie eng mit der Fehlerbehandlungsinfrastruktur der Plattform, indem jede Instanz zur genauen Fehlerdiagnose einen ara::core::ErrorCode transportiert [SWS_PER_00355].

Lebenszyklus

Der Lebenszyklus eines ara::per::PerException-Objekts ist direkt an die Erkennung und Weitergabe eines Fehlers innerhalb von Persistenzoperationen gebunden. Die Instanziierung erfolgt über einen expliziten Konstruktor, der genau einen Parameter vom Typ ara::core::ErrorCode entgegennimmt [SWS_PER_00355]. Dieser Konstruktor ist als explicit deklariert, um implizite Typkonvertierungen aus Fehlercodes zu unterbinden, und ist mit der Spezifikation noexcept versehen [SWS_PER_00355]. Dies stellt sicher, dass während der Konstruktion des Ausnahmeobjekts selbst keine weiteren Ausnahmen auftreten können; die Erzeugung ist somit vollständig ausnahmesicher (exception safe) [SWS_PER_00355].

Bezüglich der Nebenläufigkeit ist die Erzeugung von ara::per::PerException als threadsicher (thread-safe) spezifiziert [SWS_PER_00355]. Nach dem Aufruf des Konstruktors wird das Objekt entlang des Aufrufstapels geworfen. Besitzverhältnisse und Zerstörung folgen den standardmäßigen C++-Regeln für Ausnahmebehandlung: Das Objekt verbleibt im Speicherbereich des Laufzeitsystems, bis der abfangende catch-Block beendet ist, und wird anschließend deterministisch zerstört.

Nutzungspfad

Der typische Ablauf bei der Nutzung von ara::per::PerException gliedert sich in folgende Schritte:

  • Fehlererkennung und Code-Erzeugung: Das Persistenzmodul identifiziert einen unzulässigen Zustand oder den Fehlschlag einer Speicheroperation und bildet diesen in einem entsprechenden ara::core::ErrorCode ab.
  • Instanziierung: Unter Übergabe dieses Fehlercodes wird das Ausnahmeobjekt explizit über PerException(errorCode) erzeugt [SWS_PER_00355].
  • Auslösen der Ausnahme: Das Persistenz-Subsystem wirft die Ausnahmeinstanz aus der betroffenen Funktionsschnittstelle.
  • Abfangen und Auswerten: Die aufrufende Anwendung fängt das Objekt spezifisch als ara::per::PerException oder polymorph als ara::core::Exception bzw. std::exception ab. Interpretation: Die Anwendung dürfte anschließend über die von der Basisklasse geerbten Zugriffsmethoden den gekapselten ara::core::ErrorCode auslesen, um gezielte Fehlerbehebungsmaßnahmen einzuleiten. Frage Q-6e48fd125d9938d8 (offen)

Fehlerszenarien

Da ara::per::PerException der Repräsentation von Fehlern dient, stehen bei Fehlerszenarien die Robustheit der Objekterzeugung und die Integrität der Fehlerinformation im Vordergrund. Als wesentliche Vorbedingung erfordert der Konstruktor einen gültigen ara::core::ErrorCode als Eingabeparameter [SWS_PER_00355]. Da der Konstruktor als noexcept deklariert ist, ist ausgeschlossen, dass während der Fehlerberichterstattung sekundäre Ausnahmen auftreten [SWS_PER_00355]. Zudem garantiert die spezifizierte Threadsicherheit, dass auch bei parallelen Fehlern in mehreren Ausführungssträngen keine Datenkorruption oder unkoordinierten Seiteneffekte entstehen [SWS_PER_00355].

Dieser Leitfaden basiert ausschließlich auf den Spezifikationsdaten der AUTOSAR Adaptive Platform Release R25-11.

UML-Klassendiagramm

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

Konstruktoren und Destruktor

PerException function

Construct a new Persistency exception object containing an error code.

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

Dokumentation der Methoden

function 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#f5dacf6e
Content hash
f5dacf6e
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