DEENESPTFRRUARHIKOZHNL

clase 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

Guía del usuarioGENERADO POR IA

Sirve para encapsular y señalizar errores del módulo de persistencia a partir de un código de error específico.
GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: abab05ca22f0 Procedencia Preguntas abiertas (2)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

Sirve para encapsular y señalizar errores del módulo de persistencia a partir de un código de error específico.

La clase ara::per::PerException sirve en AUTOSAR Adaptive Platform como tipo de excepción específico para señalizar errores procedentes del módulo de persistencia. Se proporciona mediante el encabezado ara/per/per_error_domain.h y hereda de la clase base ara::core::Exception [SWS_PER_00355]. La instanciación se lleva a cabo explícitamente mediante el paso de un ara::core::ErrorCode, el cual encapsula la causa concreta del error. Gracias a la declaración del constructor como noexcept, la creación está especificada como completamente segura frente a excepciones y segura para subprocesos [SWS_PER_00355].

Contexto

La clase ara::per::PerException actúa como tipo de excepción central y especializado para el clúster funcional de persistencia (módulo per) dentro de AUTOSAR Adaptive Platform en la versión R25-11. Conforme a su sintaxis formal, la clase deriva públicamente de la excepción base general ara::core::Exception. Su responsabilidad primordial consiste en señalizar a las capas superiores de la aplicación estados de error graves o no tratables de forma inmediata mediante valores de retorno regulares procedentes del subsistema de persistencia. La clase se define en el encabezado ara/per/per_error_domain.h [SWS_PER_00355]. En la arquitectura, interactúa estrechamente con la infraestructura de tratamiento de errores de la plataforma transportando un ara::core::ErrorCode en cada instancia para el diagnóstico preciso de errores [SWS_PER_00355].

Ciclo de vida

El ciclo de vida de un objeto ara::per::PerException está directamente vinculado a la detección y propagación de un error dentro de las operaciones de persistencia. La instanciación se produce mediante un constructor explícito que recibe exactamente un parámetro del tipo ara::core::ErrorCode [SWS_PER_00355]. Este constructor está declarado como explicit para evitar conversiones de tipo implícitas a partir de códigos de error y cuenta con la especificación noexcept [SWS_PER_00355]. Esto garantiza que no puedan surgir más excepciones durante la propia construcción del objeto de excepción; la creación es, por tanto, completamente segura frente a excepciones (exception safe) [SWS_PER_00355].

En lo relativo a la concurrencia, la creación de ara::per::PerException está especificada como segura para subprocesos (thread-safe) [SWS_PER_00355]. Tras la llamada al constructor, el objeto se lanza a lo largo de la pila de llamadas. La propiedad y la destrucción siguen las reglas estándar de C++ para el tratamiento de excepciones: el objeto permanece en la región de memoria del sistema en tiempo de ejecución hasta que concluye el bloque catch de captura y, a continuación, se destruye de forma determinista.

Ruta de uso

El flujo típico en el uso de ara::per::PerException se divide en los siguientes pasos:

  • Detección de errores y generación de código: el módulo de persistencia identifica un estado no permitido o el fallo de una operación de almacenamiento y lo refleja en un ara::core::ErrorCode correspondiente.
  • Instanciación: pasando este código de error, el objeto de excepción se crea explícitamente mediante PerException(errorCode) [SWS_PER_00355].
  • Lanzamiento de la excepción: el subsistema de persistencia lanza la instancia de excepción desde la interfaz de función afectada.
  • Captura y evaluación: la aplicación invocadora captura el objeto de forma específica como ara::per::PerException o de manera polimórfica como ara::core::Exception o std::exception. Interpretación: a continuación, es probable que la aplicación lea el ara::core::ErrorCode encapsulado a través de los métodos de acceso heredados de la clase base a fin de iniciar medidas específicas de subsanación de errores. Pregunta Q-6e48fd125d9938d8 (abierta)

Escenarios de error

Dado que ara::per::PerException sirve para representar errores, en los escenarios de fallo cobran protagonismo la robustez de la creación del objeto y la integridad de la información sobre el error. Como precondición esencial, el constructor requiere un ara::core::ErrorCode válido como parámetro de entrada [SWS_PER_00355]. Puesto que el constructor está declarado como noexcept, queda descartado que surjan excepciones secundarias durante la notificación del error [SWS_PER_00355]. Además, la seguridad para subprocesos especificada garantiza que no se produzcan corrupciones de datos ni efectos secundarios descoordinados incluso ante errores concurrentes en múltiples subprocesos de ejecución [SWS_PER_00355].

Esta guía se basa exclusivamente en los datos de especificación de AUTOSAR Adaptive Platform versión R25-11.

Diagrama de clases 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

Constructores y destructor

PerException función

Construct a new Persistency exception object containing an error code.

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

Documentación de los métodos

función 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#46e6bd74
Content hash
46e6bd74
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