DEENESPTFRRUARHIKOZHNL

classe 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]

Guide utilisateurGÉNÉRÉ PAR IA

Définit le domaine d'erreur du module de persistance pour la mise à disposition de codes d'erreur, de descriptions textuelles et d'exceptions.
GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : da81ed3d3cb6 Provenance Questions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

Définit le domaine d'erreur du module de persistance pour la mise à disposition de codes d'erreur, de descriptions textuelles et d'exceptions.

La classe ara::per::PerErrorDomain définit le domaine d'erreur pour le module de persistance et associe des codes d'erreur à des messages descriptifs ainsi qu'à des types d'exceptions [SWS_PER_00411]. Elle permet, via des interfaces thread-safe, de consulter le nom de domaine ainsi que de résoudre des descriptions d'erreur pour des valeurs d'erreur concrètes. En cas de besoin, elle convertit les erreurs en exceptions C++ via ThrowAsException() [SWS_PER_00350]. Si les exceptions sont désactivées dans la chaîne d'outils du compilateur, cette fonction de déclenchement n'est pas disponible, de sorte que la vérification des erreurs doit s'effectuer purement sur la base des valeurs de retour.

Contexte

La classe ara::per::PerErrorDomain définit le domaine d'erreur spécifique pour le module de persistance (Persistency) au sein d'AUTOSAR Adaptive Platform. Elle hérite de la définition de type de base ara::core::ErrorDomain et est déclarée comme final, constituant ainsi la base du traitement typé des erreurs et de la mise en correspondance des erreurs de l'ensemble des opérations liées à la persistance. Par l'intermédiaire des alias de types standardisés Errc [SWS_PER_00411] pour l'énumération de codes d'erreur sous-jacente PerErrc ainsi que Exception [SWS_PER_00412] pour la classe de base d'exception spécifique au module PerException, la classe relie des valeurs d'erreur numériques, des messages d'erreur explicites et des objets d'exception C++ concrets. Dans l'architecture de la plateforme, le domaine d'erreur interagit étroitement avec les services de persistance, les clusters fonctionnels appelants ainsi que les structures d'erreur et de résultat génériques issues de ara::core.

Cycle de vie

La création d'une instance s'effectue via le constructeur standard PerErrorDomain() [SWS_PER_00313]. Ce constructeur est déclaré comme noexcept, entièrement sûr vis-à-vis des exceptions (exception safe) et thread-safe (thread-safe). Interprétation : l'instance de PerErrorDomain devrait typiquement être gérée comme un objet durable ou global afin de garantir, pendant tout le fonctionnement, des comparaisons de domaines et des résolutions de types cohérentes pour les erreurs de persistance. Question Q-5d90982fddec40a7 (ouverte) Étant donné que toutes les opérations de consultation de la classe sont également classées comme thread-safe, plusieurs threads peuvent accéder en parallèle à la même instance de domaine sans que des mécanismes de synchronisation supplémentaires ne soient requis au niveau de l'appelant.

Parcours d'utilisation

Un chemin d'utilisation typique comprend l'identification du domaine, la consultation d'informations de diagnostic compréhensibles et, optionnellement, le déclenchement d'exceptions en cas d'erreurs survenues dans le module de persistance. Tout d'abord, la fonction membre Name() renvoie l'identifiant unique du domaine d'erreur sous la forme d'une chaîne de caractères [SWS_PER_00314] ; elle est spécifiée comme noexcept, sûre vis-à-vis des exceptions et thread-safe. Si une erreur survient lors d'une opération de persistance, sa valeur d'erreur numérique est résolue via Message() [SWS_PER_00315]. Cette méthode prend en paramètre le code d'erreur numérique de type CodeType et renvoie le message d'erreur associé sous la forme d'un pointeur de caractères constant (const char *), également avec la garantie d'une sécurité totale vis-à-vis des exceptions et de la sécurité des threads.

Si un état d'erreur doit être converti en une exception C++, la fonction ThrowAsException() est utilisée [SWS_PER_00350]. Le déroulement suivant illustre l'interaction lors de la consultation des erreurs et du déclenchement d'exceptions :

Interrogation des erreurs et déclenchement d'exception dans PerErrorDomainApplicationPersistenzLaufzeitPerErrorDomainExécuter l'opération de persistance()Retour du code d'erreur / ResultMessage(errorCode)const char * (Fehlernachricht)optGestion des exceptions souhaitéeThrowAsException(errorCode)throw PerException

Diagramme de séquence : déroulement typique de la vérification des erreurs, de la consultation de texte et du déclenchement d'exceptions via PerErrorDomain. Sources : [SWS_PER_00314], [SWS_PER_00315], [SWS_PER_00350].

Scénarios d'erreur

Lors de l'utilisation pratique de ara::per::PerErrorDomain, les développeurs doivent prendre en compte les différentes garanties concernant le traitement des erreurs et la sécurité vis-à-vis des exceptions. Alors que les interfaces de consultation Name() [SWS_PER_00314] et Message() [SWS_PER_00315] sont strictement déclarées comme noexcept et classées comme sûres vis-à-vis des exceptions, la fonction membre ThrowAsException() est considérée comme non sûre vis-à-vis des exceptions (not exception safe) [SWS_PER_00350]. Ce comportement est sémantiquement justifié, car le but de la fonction réside dans le déclenchement contrôlé d'une exception correspondant au code d'erreur (noexcept(false)).

Une contrainte essentielle concerne les plateformes ou les configurations de compilation sans exceptions C++ activées : si le traitement des exceptions est désactivé dans le compilateur, ThrowAsException() ne participe pas à la résolution de surcharge selon [SWS_PER_00350]. Dans de tels environnements, le logiciel d'application doit recourir à l'évaluation des codes d'erreur via les alias fournis Errc [SWS_PER_00411] et aux descriptions textuelles de Message() [SWS_PER_00315], au lieu d'intercepter des objets d'exception de type Exception [SWS_PER_00412].

Ce guide a été généré automatiquement sur la base des exigences de spécification AUTOSAR.

Carte des membres

Constructeurs et destructeur

1

Alias de type

2

Diagramme de classes

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

Vue détaillée

Sélectionnez une entrée dans le plan.

Constructeurs et destructeur

Creates a PerErrorDomain instance.

PerErrorDomain () noexcept;

Méthodes

Message fonction

Returns the message associated with the error code.

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

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;

Alias de type

Errc alias de type

Alias for the error code value enumeration.

using Errc = PerErrc;
Exception alias de type

Alias for the exception base class.

Documentation des méthodes

fonction 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#64006268
Content hash
64006268
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

fonction 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#bcef4e06
Content hash
bcef4e06
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

fonction 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#80b8d964
Content hash
80b8d964
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

fonction 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#e8ade283
Content hash
e8ade283
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

Documentation des alias de type

alias de type 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#896e1cdb
Content hash
896e1cdb
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

alias de type 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#e640c120
Content hash
e640c120
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