DEENESPTFRRUARHIKOZHNL

class ara::per::PerErrorDomain

[SWS_PER_00312] Upstream: RS_AP_00122, RS_AP_00127, RS_AP_00140

class PerErrorDomain final :             public ara::core::ErrorDomain {...};

Defines the error domain for 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::ErrorDomain
Unique IDAs per ara::per::PerErrorDomain in [SWS_CORE_90023]

User GuideKI-GENERIERT

Definiert die Fehlerdomäne des Persistenzmoduls zur Bereitstellung von Fehlercodes, Textbeschreibungen und Ausnahmen.
KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: da81ed3d3cb6 Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Definiert die Fehlerdomäne des Persistenzmoduls zur Bereitstellung von Fehlercodes, Textbeschreibungen und Ausnahmen.

Die Klasse ara::per::PerErrorDomain definiert die Fehlerdomäne für das Persistenzmodul und verknüpft Fehlercodes mit beschreibenden Meldungen sowie Ausnahmetypen [SWS_PER_00411]. Sie ermöglicht über threadsichere Schnittstellen die Abfrage des Domänennamens sowie das Auflösen von Fehlerbeschreibungen zu konkreten Fehlerwerten. Bei Bedarf überführt sie Fehler über ThrowAsException() in C++-Ausnahmen [SWS_PER_00350]. Sind Ausnahmen in der Compiler-Toolchain deaktiviert, steht diese Auslösefunktion nicht zur Verfügung, sodass die Fehlerprüfung rein rückgabewertbasiert erfolgen muss.

Kontext

Die Klasse ara::per::PerErrorDomain definiert die spezifische Fehlerdomäne für das Persistenzmodul (Persistency) innerhalb der AUTOSAR Adaptive Platform. Sie erbt von der Basistypdefinition ara::core::ErrorDomain und ist als final deklariert, womit sie die Grundlage für die typisierte Fehlerbehandlung und Fehlerabbildung sämtlicher persistenzbezogener Operationen bildet. Über die standardisierten Typaliase Errc [SWS_PER_00411] für die zugrundeliegende Fehlercode-Enumeration PerErrc sowie Exception [SWS_PER_00412] für die modulspezifische Ausnahmebasisklasse PerException verknüpft die Klasse numerische Fehlerwerte, sprechende Fehlermeldungen und konkrete C++-Ausnahmeobjekte. In der Plattformarchitektur interagiert die Fehlerdomäne eng mit den Persistenzdiensten, den aufrufenden Funktionsclustern sowie den generischen Fehler- und Ergebnisstrukturen aus ara::core.

Lebenszyklus

Die Erzeugung einer Instanz erfolgt über den standardmäßigen Konstruktor PerErrorDomain() [SWS_PER_00313]. Dieser Konstruktor ist als noexcept deklariert, vollständig ausnahmesicher (exception safe) und threadsicher (thread-safe). Interpretation: Die Instanz von PerErrorDomain dürfte typischerweise als langlebiges oder globales Objekt verwaltet werden, um während des gesamten Betriebs konsistente Domänenvergleiche und Typauflösungen für Persistenzfehler zu gewährleisten. Frage Q-5d90982fddec40a7 (offen) Da sämtliche abfragenden Operationen der Klasse ebenfalls als threadsicher eingestuft sind, können mehrere Threads parallel auf dieselbe Domäneninstanz zugreifen, ohne dass zusätzliche Synchronisationsmechanismen auf Aufruferebene erforderlich sind.

Nutzungspfad

Ein typischer Nutzungspfad umfasst die Identifikation der Domäne, die Abfrage verständlicher Diagnoseinformationen und optional das Auslösen von Ausnahmen bei aufgetretenen Fehlern im Persistenzmodul. Zunächst liefert die Elementfunktion Name() den eindeutigen Bezeichner der Fehlerdomäne als Zeichenkette zurück [SWS_PER_00314]; sie ist als noexcept, ausnahmesicher und threadsicher spezifiziert. Tritt bei einer Persistenzoperation ein Fehler auf, wird dessen numerischer Fehlerwert über Message() aufgelöst [SWS_PER_00315]. Diese Methode nimmt den numerischen Fehlercode vom Typ CodeType entgegen und liefert die zugehörige Fehlermeldung als konstanten Zeichenzeiger (const char *) zurück, ebenfalls unter Garantie vollständiger Ausnahmesicherheit und Threadsicherheit.

Soll ein Fehlerzustand in eine C++-Ausnahme überführt werden, kommt die Funktion ThrowAsException() zum Einsatz [SWS_PER_00350]. Der folgende Ablauf verdeutlicht das Zusammenspiel bei der Fehlerabfrage und Ausnahmeauslösung:

Fehlerabfrage und Ausnahmeauslösung in PerErrorDomainAnwendungPersistenzLaufzeitPerErrorDomainPersistenzoperation ausführen()Rückgabe Fehlercode / ResultMessage(errorCode)const char * (Fehlernachricht)optAusnahmebehandlung gewünschtThrowAsException(errorCode)throw PerException

Sequenzdiagramm: Typischer Ablauf der Fehlerprüfung, Textabfrage und Ausnahmeauslösung über PerErrorDomain. Quellen: [SWS_PER_00314], [SWS_PER_00315], [SWS_PER_00350].

Fehlerszenarien

Beim praktischen Einsatz von ara::per::PerErrorDomain müssen Entwickler die unterschiedlichen Garantien bezüglich Fehlerbehandlung und Ausnahmesicherheit berücksichtigen. Während die abfragenden Schnittstellen Name() [SWS_PER_00314] und Message() [SWS_PER_00315] strikt als noexcept deklariert sind und als ausnahmesicher eingestuft werden, gilt die Elementfunktion ThrowAsException() als nicht ausnahmesicher (not exception safe) [SWS_PER_00350]. Dieses Verhalten ist semantisch begründet, da der Zweck der Funktion im kontrollierten Auslösen einer dem Fehlercode entsprechenden Ausnahme besteht (noexcept(false)).

Eine wesentliche Randbedingung betrifft Plattformen oder Build-Konfigurationen ohne aktivierte C++-Ausnahmen: Ist die Ausnahmebehandlung im Compiler deaktiviert, nimmt ThrowAsException() gemäß [SWS_PER_00350] nicht an der Überladungsauflösung teil. In solchen Umgebungen muss die Anwendungssoftware auf die Auswertung von Fehlercodes über die bereitgestellten Aliase Errc [SWS_PER_00411] und die textuellen Beschreibungen von Message() [SWS_PER_00315] zurückgreifen, anstatt Ausnahmeobjekte des Typs Exception [SWS_PER_00412] abzufangen.

Dieser Leitfaden wurde automatisch auf Basis der AUTOSAR-Spezifikationsanforderungen erstellt.

Mitgliederkarte

Konstruktoren und Destruktor

1

Typaliase

2

Klassendiagramm

Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.

G nara__per__PerErrorDomain979 PerErrorDomain + PerErrorDomain() + Message() + Name() + ThrowAsException() nara__core__ErrorDomain335 ErrorDomain nara__per__PerErrorDomain979->nara__core__ErrorDomain335

Detailansicht

Wähle in der Gliederung einen Eintrag aus.

Konstruktoren und Destruktor

Creates a PerErrorDomain instance.

PerErrorDomain () noexcept;

Methoden

Message function

Returns the message associated with the error code.

const char * Message (CodeType errorCode) const noexcept override;
Name function

Returns the name of the error domain.

const char * Name () const noexcept override;

Throws the exception associated with the error code. As per [SWS_CORE_10304], this function does not participate in overload resolution when C++ exceptions are disabled in the compiler toolchain.

void ThrowAsException (const ara::core::ErrorCode &errorCode) const noexcept(false) override;

Typaliase

Errc type alias

Alias for the error code value enumeration.

using Errc = PerErrc;
Exception type alias

Alias for the exception base class.

Dokumentation der Methoden

function Message [SWS_PER_00315] Upstream: RS_AP_00119, RS_AP_00120, RS_AP_00121, RS_AP_00159

const char * Message (CodeType errorCode) const noexcept override;

Returns the message associated with the error code.

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

Parameter (in)

ParameterBeschreibung
errorCodeThe error code number.

Rückgabewert

TypBeschreibung
const char *The message associated with the error code.

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

Record
AUTOSAR/AP/record/SWS_PER_00315
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_PER_00315@rel:R25-11#dcf865cc
Content hash
dcf865cc
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Persistency.pdf#nameddest=SWS_PER_00315
Status: valid/unmigrated Version: rel:R25-11#b3b0e84a 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_00315@rel:R25-11#b3b0e84a
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#dcf865cc2026-09-30
  • R19-11rel:R19-11#fa40c0592026-10-14
  • R20-11rel:R20-11#482223252026-10-14
  • R21-11rel:R21-11#4762f8102026-10-14
  • R22-11rel:R22-11#03cd14022026-10-14
  • R23-11rel:R23-11#d69d63782026-10-14
  • R24-11rel:R24-11#b3b0e84a2026-10-14
  • R25-11rel:R25-11#b3b0e84a2026-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

function Name [SWS_PER_00314] Upstream: RS_AP_00119, RS_AP_00120, RS_AP_00159

const char * Name () const noexcept override;

Returns the name of the error domain.

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

Rückgabewert

TypBeschreibung
const char *As per ara::per::PerErrorDomain in [SWS_CORE_90023].

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

Record
AUTOSAR/AP/record/SWS_PER_00314
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_PER_00314@rel:R25-11#8efa8b41
Content hash
8efa8b41
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Persistency.pdf#nameddest=SWS_PER_00314
Status: valid/unmigrated Version: rel:R25-11#bbc9c834 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_00314@rel:R25-11#bbc9c834
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#8efa8b412026-09-30
  • R19-11rel:R19-11#157f07862026-10-14
  • R20-11rel:R20-11#578706942026-10-14
  • R21-11rel:R21-11#578706942026-10-14
  • R22-11rel:R22-11#7e3ba2a72026-10-14
  • R23-11rel:R23-11#4ed7a81d2026-10-14
  • R24-11rel:R24-11#f4d2bd532026-10-14
  • R25-11rel:R25-11#bbc9c8342026-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

function PerErrorDomain [SWS_PER_00313] Upstream: RS_AP_00119, RS_AP_00120, RS_AP_00159

PerErrorDomain () noexcept;

Creates a PerErrorDomain instance.

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

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

Record
AUTOSAR/AP/record/SWS_PER_00313
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_PER_00313@rel:R25-11#2fe03ca6
Content hash
2fe03ca6
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Persistency.pdf#nameddest=SWS_PER_00313
Status: valid/unmigrated Version: rel:R25-11#676bd5fe 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_00313@rel:R25-11#676bd5fe
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#2fe03ca62026-09-30
  • R19-11rel:R19-11#493784652026-10-14
  • R20-11rel:R20-11#e90ad4282026-10-14
  • R21-11rel:R21-11#4fed90922026-10-14
  • R22-11rel:R22-11#c86bdbe02026-10-14
  • R23-11rel:R23-11#07bddb402026-10-14
  • R24-11rel:R24-11#676bd5fe2026-10-14
  • R25-11rel:R25-11#676bd5fe2026-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

function ThrowAsException [SWS_PER_00350] Upstream: RS_AP_00120, RS_AP_00121

void ThrowAsException (const ara::core::ErrorCode &errorCode) const noexcept(false) override;

Throws the exception associated with the error code. As per [SWS_CORE_10304], this function does not participate in overload resolution when C++ exceptions are disabled in the compiler toolchain.

Header-Datei#include "ara/per/per_error_domain.h"
Scopeclass ara::per::PerErrorDomain
Exception-Sicherheitnot exception safe
Thread-Sicherheitthread-safe

Parameter (in)

ParameterBeschreibung
errorCodeThe error to throw.

Rückgabewert

TypBeschreibung
None

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

Record
AUTOSAR/AP/record/SWS_PER_00350
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_PER_00350@rel:R25-11#ac2c5033
Content hash
ac2c5033
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Persistency.pdf#nameddest=SWS_PER_00350
Status: valid/unmigrated Version: rel:R25-11#d5cad670 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_00350@rel:R25-11#d5cad670
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#ac2c50332026-09-30
  • R19-11rel:R19-11#08d8b5132026-10-14
  • R20-11rel:R20-11#bcef1c2f2026-10-14
  • R21-11rel:R21-11#bcef1c2f2026-10-14
  • R22-11rel:R22-11#855e1f712026-10-14
  • R23-11rel:R23-11#a44240ed2026-10-14
  • R24-11rel:R24-11#d5cad6702026-10-14
  • R25-11rel:R25-11#d5cad6702026-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

Dokumentation der Typaliase

type alias Errc [SWS_PER_00411] Upstream: RS_AP_00122

using Errc = PerErrc;

Alias for the error code value enumeration.

Header-Datei#include "ara/per/per_error_domain.h"
Scopeclass ara::per::PerErrorDomain
SymbolErrc

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

Record
AUTOSAR/AP/record/SWS_PER_00411
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_PER_00411@rel:R25-11#78fe2202
Content hash
78fe2202
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Persistency.pdf#nameddest=SWS_PER_00411
Status: valid/unmigrated Version: rel:R25-11#9d0ddf8d Versionshistorie & Revisions (1 transition, 7 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_00411@rel:R25-11#9d0ddf8d
Point-in-Time History:
Recorded Revisions (7):
  • R25-11rel:R25-11#78fe22022026-09-30
  • R20-11rel:R20-11#39e744882026-10-14
  • R21-11rel:R21-11#39e744882026-10-14
  • R22-11rel:R22-11#8f96934a2026-10-14
  • R23-11rel:R23-11#9d0ddf8d2026-10-14
  • R24-11rel:R24-11#9d0ddf8d2026-10-14
  • R25-11rel:R25-11#9d0ddf8d2026-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

type alias Exception [SWS_PER_00412] Upstream: RS_AP_00122

using Exception = PerException;

Alias for the exception base class.

Header-Datei#include "ara/per/per_error_domain.h"
Scopeclass ara::per::PerErrorDomain
SymbolException

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

Record
AUTOSAR/AP/record/SWS_PER_00412
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_PER_00412@rel:R25-11#0875fcdc
Content hash
0875fcdc
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Persistency.pdf#nameddest=SWS_PER_00412
Status: valid/unmigrated Version: rel:R25-11#12539c4d Versionshistorie & Revisions (1 transition, 7 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_00412@rel:R25-11#12539c4d
Point-in-Time History:
Recorded Revisions (7):
  • R25-11rel:R25-11#0875fcdc2026-09-30
  • R20-11rel:R20-11#e88607572026-10-14
  • R21-11rel:R21-11#e88607572026-10-14
  • R22-11rel:R22-11#b0bd04f32026-10-14
  • R23-11rel:R23-11#12539c4d2026-10-14
  • R24-11rel:R24-11#12539c4d2026-10-14
  • R25-11rel:R25-11#12539c4d2026-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