Sirve para encapsular y señalizar errores del módulo de persistencia a partir de un código de error específico.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: abab05ca22f0ProcedenciaPreguntas 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.
gemini-3.8-flash-low· 2026-10-13 · Original en alemán