DEENESPTFRRUARHIKOZHNL

clase ara::phm::PhmException

[SWS_PHM_01242] Upstream: RS_AP_00119

class PhmException :        public ara::core::Exception {...};

Exception type thrown by Platform Health Management.

Header-Datei#include "ara/phm/phm_error_domain.h"
Forwarding-Header#include "ara/phm/phm_fwd.h"
Scopenamespace ara::phm
Basisklasse(n)ara::core::Exception

Guía del usuarioGENERADO POR IA

Encapsula códigos de error de Platform Health Management como excepción segura para subprocesos para operaciones de módulo fallidas.
GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 9c0b25d6fb92 Procedencia Preguntas abiertas (2)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

Encapsula códigos de error de Platform Health Management como excepción segura para subprocesos para operaciones de módulo fallidas.

La clase ara::phm::PhmException sirve en Platform Health Management como tipo de excepción central para la encapsulación y transferencia de errores específicos del módulo a los componentes invocadores. En caso de detección de errores, se instancia explícitamente con un ara::core::ErrorCode y se lanza a fin de permitir un tratamiento estructurado de errores a través de los bloques catch correspondientes [SWS_PHM_01243]. Como restricción fundamental, su construcción está especificada como noexcept, thread-safe y exception-safe, con lo que se descartan errores secundarios durante la creación de la excepción [SWS_PHM_01243]. Interpretación: los invocadores capturan típicamente el objeto por referencia para evaluar de forma determinista el código de error contenido sin asignación dinámica de memoria. Pregunta (abierta)

Contexto

La clase ara::phm::PhmException actúa como tipo de excepción dedicado para Platform Health Management (PHM) dentro de AUTOSAR Adaptive Platform. Conforme a la definición de la clase, deriva públicamente de ara::core::Exception y constituye el nexo para comunicar estados de error del módulo phm a los componentes del sistema y de la aplicación invocadores a través del mecanismo de excepciones estandarizado de C++. En la arquitectura del sistema, la clase interactúa primordialmente entre los servicios operativos de PHM, los cuales ejecutan funciones de supervisión y detectan estados de error ante violaciones de reglas, y las rutinas de tratamiento de errores de nivel superior de la aplicación. Mediante la integración en el modelo de tratamiento de errores fundamental de ara::core, se garantiza que los informes de error específicos del dominio procedentes de Platform Health Management puedan transportarse y procesarse de manera homogénea.

Ciclo de vida

El ciclo de vida de una instancia de ara::phm::PhmException comienza con la instanciación explícita en caso de error. Conforme a [SWS_PHM_01243], el objeto se crea a través del constructor PhmException(ara::core::ErrorCode errorCode) incluyendo el encabezado ara/phm/phm_error_domain.h. La creación está declarada como noexcept y presenta tanto las propiedades «exception safe» como «thread-safe» [SWS_PHM_01243]. Esto garantiza que la instanciación del propio objeto de excepción se realice de forma segura incluso bajo alta concurrencia y no desencadene en ningún momento excepciones secundarias inesperadas.

El objeto encapsula el ara::core::ErrorCode pasado y posee un estado inmutable tras su creación. Durante el desenrollado de la pila (stack unwinding), el entorno de ejecución transporta el objeto de excepción. La destrucción se produce de forma determinista al salir del bloque catch de tratamiento conforme a las reglas estándar de C++. Interpretación: es probable que las instancias se creen habitualmente de forma directa en la expresión throw en la pila y se capturen por referencia (const ara::phm::PhmException&), de modo que en el lado del invocador no se requiera gestión dinámica de memoria. Pregunta Q-37fc47021a78a0db (abierta)

Ruta de uso

La ruta de uso típica comienza cuando falla una operación supervisada de Platform Health Management o se detecta una desviación de estado no permitida. A continuación, la función de PHM desencadenante inicializa un objeto de excepción con el código de error asociado y lo lanza desde [SWS_PHM_01243]. En el lado del invocador, la sección de código protegida se ejecuta dentro de un bloque try-catch. Presumiblemente, las aplicaciones capturan la excepción bien específicamente como ara::phm::PhmException o bien de forma polimórfica a través de la clase base ara::core::Exception. Pregunta Q-54638c0dde7d9195 (abierta) En el manejador de excepciones se extrae el ara::core::ErrorCode contenido a fin de analizar la causa e iniciar las correspondientes contramedidas o estrategias de funcionamiento degradado.

Ruta de uso para activar y tratar PhmExceptionAplicaciónPHM-Dienstgestión de erroresPHM-FunktionsaufrufDetección de un error internoPhmException(errorCode) werfenAuswertung von ErrorCodeRetorno tras el tratamiento de errores

Diagrama de secuencias: flujo típico desde la detección de errores en PHM pasando por el lanzamiento de ara::phm::PhmException hasta la evaluación en el manejador. Fuentes: [SWS_PHM_01243].

Escenarios de error

Un componente central de ara::phm::PhmException es el transporte del código de error en tiempo de ejecución. Como precondición para la creación del objeto se establece el paso de un ara::core::ErrorCode válido [SWS_PHM_01243]. La poscondición de la llamada es un objeto de excepción completamente inicializado que proporciona el código de error pasado de forma inalterada para su consulta.

Dado que el constructor está especificado explícitamente como noexcept y «exception safe» [SWS_PHM_01243], queda descartada la aparición de excepciones durante la propia construcción de la excepción. Por lo tanto, no puede producirse un fallo en la creación del objeto, lo que evita una terminación prematura mediante std::terminate durante la notificación del error. La seguridad para subprocesos especificada («thread-safe») protege asimismo frente a la corrupción de datos cuando múltiples subprocesos notifican paralelamente estados de error mediante excepciones propias [SWS_PHM_01243]. Por consiguiente, los escenarios de fallo no atañen a la propia clase de excepción, sino que reflejan las causas técnicas de error codificadas en el ara::core::ErrorCode encapsulado del dominio de errores de PHM.

Esta guía ha sido generada por una IA sobre la base de la especificación de AUTOSAR Adaptive Platform R25-11.

Diagrama de clases UML

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

G nara__phm__PhmException101 PhmException + PhmException() nara__core__Exception792 Exception nara__phm__PhmException101->nara__core__Exception792 nstd__exception10 std::exception nara__core__Exception792->nstd__exception10

Constructores y destructor

PhmException función

Construct a new PlatformHealthManagement exception object containing an error code.

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

Documentación de los métodos

función PhmException [SWS_PHM_01243] Upstream: RS_AP_00119, RS_AP_00159

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

Construct a new PlatformHealthManagement exception object containing an error code.

Header-Datei#include "ara/phm/phm_error_domain.h"
Scopeclass ara::phm::PhmException
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_PHM_01243
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_PHM_01243@rel:R25-11#0fc222f7
Content hash
0fc222f7
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_PlatformHealthManagement.pdf#nameddest=SWS_PHM_01243
Status: valid/unmigrated Version: rel:R25-11#47b59c13 Versionshistorie & Revisions (1 transition, 5 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_PHM_01243@rel:R25-11#47b59c13
Point-in-Time History:
Recorded Revisions (5):
  • R25-11rel:R25-11#9af686bd2026-09-30
  • R22-11rel:R22-11#eabc2e272026-10-14
  • R23-11rel:R23-11#b6f2d9e42026-10-14
  • R24-11rel:R24-11#47b59c132026-10-14
  • R25-11rel:R25-11#47b59c132026-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