DEENESPTFRRUARHIKOZHNL

classe 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

Guide utilisateurGÉNÉRÉ PAR IA

Sert à encapsuler et à signaler des erreurs provenant du module de persistance à l'aide d'un code d'erreur spécifique.
GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : abab05ca22f0 Provenance Questions ouvertes (2)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

Sert à encapsuler et à signaler des erreurs provenant du module de persistance à l'aide d'un code d'erreur spécifique.

La classe ara::per::PerException sert, dans l'AUTOSAR Adaptive Platform, de type d'exception spécifique pour signaler des erreurs issues du module de persistance. Elle est mise à disposition via l'en-tête ara/per/per_error_domain.h et hérite de la classe de base ara::core::Exception [SWS_PER_00355]. L'instanciation s'effectue explicitement par transmission d'un ara::core::ErrorCode, qui encapsule la cause concrète de l'erreur. Grâce à la déclaration du constructeur comme noexcept, la création est spécifiée comme totalement sûre face aux exceptions ainsi que thread-safe [SWS_PER_00355].

Contexte

La classe ara::per::PerException agit en tant que type d'exception central et spécialisé pour le cluster fonctionnel de la persistance (module per) au sein de l'AUTOSAR Adaptive Platform dans la version R25-11. Selon sa syntaxe formelle, la classe est dérivée publiquement de l'exception de base générale ara::core::Exception. Sa responsabilité première consiste à signaler aux couches applicatives supérieures des états d'erreur graves ou non directement traitables par des valeurs de retour régulières, issus du sous-système de persistance. La classe est définie dans l'en-tête ara/per/per_error_domain.h [SWS_PER_00355]. Dans l'architecture, elle interagit étroitement avec l'infrastructure de traitement des erreurs de la plateforme, chaque instance transportant un ara::core::ErrorCode pour un diagnostic précis de l'erreur [SWS_PER_00355].

Cycle de vie

Le cycle de vie d'un objet ara::per::PerException est directement lié à la détection et à la transmission d'une erreur au sein d'opérations de persistance. L'instanciation s'effectue via un constructeur explicite qui accepte exactement un paramètre de type ara::core::ErrorCode [SWS_PER_00355]. Ce constructeur est déclaré comme explicit afin d'interdire les conversions implicites de type à partir de codes d'erreur, et comporte la spécification noexcept [SWS_PER_00355]. Cela garantit qu'aucune autre exception ne peut survenir pendant la construction de l'objet d'exception lui-même ; la création est ainsi totalement sûre face aux exceptions (exception safe) [SWS_PER_00355].

Concernant la concurrence, la création de ara::per::PerException est spécifiée comme sûre au niveau des threads (thread-safe) [SWS_PER_00355]. Après l'appel du constructeur, l'objet est levé le long de la pile d'appels. La propriété et la destruction suivent les règles standard de C++ pour la gestion des exceptions : l'objet subsiste dans la zone mémoire du système d'exécution jusqu'à ce que le bloc catch d'interception soit terminé, puis est détruit de manière déterministe.

Parcours d'utilisation

Le déroulement typique lors de l'utilisation de ara::per::PerException s'articule selon les étapes suivantes :

  • Détection de l'erreur et génération du code : Le module de persistance identifie un état inadmissible ou l'échec d'une opération de stockage et le modélise dans un ara::core::ErrorCode correspondant.
  • Instanciation : En transmettant ce code d'erreur, l'objet d'exception est explicitement créé via PerException(errorCode) [SWS_PER_00355].
  • Déclenchement de l'exception : Le sous-système de persistance lève l'instance d'exception depuis l'interface fonctionnelle concernée.
  • Interception et évaluation : L'application appelante intercepte l'objet de manière spécifique en tant que ara::per::PerException ou de manière polymorphique en tant que ara::core::Exception ou std::exception. Interprétation : L'application devrait ensuite lire le ara::core::ErrorCode encapsulé via les méthodes d'accès héritées de la classe de base afin d'engager des mesures correctives ciblées. Question Q-6e48fd125d9938d8 (ouverte)

Scénarios d'erreur

Étant donné que ara::per::PerException sert à la représentation d'erreurs, la robustesse de la création de l'objet et l'intégrité des informations d'erreur sont au premier plan lors des scénarios d'erreur. Comme précondition essentielle, le constructeur requiert un ara::core::ErrorCode valide en paramètre d'entrée [SWS_PER_00355]. Le constructeur étant déclaré comme noexcept, la survenue d'exceptions secondaires pendant la notification d'erreur est exclue [SWS_PER_00355]. En outre, la sécurité des threads spécifiée garantit qu'aucune corruption de données ni aucun effet secondaire non coordonné ne survient, même en cas d'erreurs parallèles dans plusieurs flux d'exécution [SWS_PER_00355].

Ce guide repose exclusivement sur les données de spécification de l'AUTOSAR Adaptive Platform Release R25-11.

Diagramme de classes UML

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

Constructeurs et destructeur

PerException fonction

Construct a new Persistency exception object containing an error code.

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

Documentation des méthodes

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