DEENESPTFRRUARHIKOZHNL

classe 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

Guia do utilizadorGERADO POR IA

Encapsula códigos de erro do Platform Health Management como exceção thread-safe para operações de módulo com falha.
GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 9c0b25d6fb92 Procedência Perguntas em aberto (2)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Encapsula códigos de erro do Platform Health Management como exceção thread-safe para operações de módulo com falha.

A classe ara::phm::PhmException serve no Platform Health Management como tipo de exceção central para encapsulamento e encaminhamento de erros específicos do módulo para componentes chamadores. Na detecção de erros, ela é instanciada explicitamente com um ara::core::ErrorCode e lançada para permitir um tratamento estruturado de erros por meio de blocos catch correspondentes [SWS_PHM_01243]. Como condição de contorno essencial, sua construção é especificada como noexcept, thread-safe bem como exception-safe, excluindo erros secundários na geração da exceção [SWS_PHM_01243]. Interpretação: os chamadores tipicamente capturam o objeto por referência para avaliar de forma determinística o código de erro contido, sem alocação dinâmica de memória. Pergunta (aberta)

Contexto

A classe ara::phm::PhmException atua como tipo de exceção dedicado para o Platform Health Management (PHM) dentro da AUTOSAR Adaptive Platform. De acordo com a definição da classe, ela deriva publicamente de ara::core::Exception e representa o elo para comunicar estados de erro do módulo phm a componentes de sistema e de aplicação chamadores através do mecanismo padronizado de exceções C++. Na arquitetura do sistema, a classe interage primariamente entre os serviços operacionais de PHM — que executam funções de monitoramento e detectam estados de erro em caso de violação de regras — e as rotinas superiores de tratamento de erros da aplicação. A integração no modelo fundamental de tratamento de erros de ara::core assegura que relatórios de erros específicos do domínio a partir do Platform Health Management possam ser transportados e processados de maneira uniforme.

Ciclo de vida

O ciclo de vida de uma instância de ara::phm::PhmException começa com a instanciação explícita em caso de erro. De acordo com [SWS_PHM_01243], o objeto é criado através do construtor PhmException(ara::core::ErrorCode errorCode) mediante inclusão do cabeçalho ara/phm/phm_error_domain.h. A criação é declarada como noexcept e apresenta tanto a propriedade «exception safe» quanto «thread-safe» [SWS_PHM_01243]. Isso garante que a instanciação do próprio objeto de exceção ocorra com segurança mesmo sob alta simultaneidade e não dispare exceções secundárias inesperadas em momento algum.

O objeto encapsula o ara::core::ErrorCode fornecido e possui um estado imutável após sua criação. Durante o desenrolamento da pilha (stack unwinding), o objeto de exceção é transportado pelo ambiente de tempo de execução. A destruição ocorre de forma determinística ao sair do bloco catch tratador, segundo as regras padrão do C++. Interpretação: instâncias devem ser criadas habitualmente direto na expressão throw na pilha (stack) e capturadas por referência (const ara::phm::PhmException&), de modo que nenhuma gestão dinâmica de memória seja necessária no lado do chamador. Pergunta Q-37fc47021a78a0db (aberta)

Caminho de utilização

O caminho típico de utilização inicia-se quando uma operação monitorada do Platform Health Management falha ou é constatado um desvio de estado inadmissível. A função de PHM disparadora inicializa, em seguida, um objeto de exceção com o código de erro associado e o lança a partir de [SWS_PHM_01243]. No lado do chamador, o trecho de código protegido é executado dentro de um bloco try-catch. Presumivelmente, as aplicações capturam a exceção especificamente como ara::phm::PhmException ou de forma polimórfica através da classe base ara::core::Exception. Pergunta Q-54638c0dde7d9195 (aberta) No manipulador de exceção, o ara::core::ErrorCode contido é extraído para analisar a causa e iniciar contra-medidas ou estratégias de emergência adequadas.

Caminho de uso para o lançamento e tratamento de PhmExceptionAplicaçãoPHM-Diensttratamento de errosPHM-FunktionsaufrufDetecção de um erro internoPhmException(errorCode) werfenAuswertung von ErrorCodeRetorno após tratamento de erro

Diagrama de sequência: fluxo típico desde a detecção de erro no PHM, passando pelo lançamento de ara::phm::PhmException, até a avaliação no manipulador. Fontes: [SWS_PHM_01243].

Cenários de erro

Componente central de ara::phm::PhmException é o transporte do código de erro em tempo de execução. Como pré-condição para a criação do objeto, aplica-se a passagem de um ara::core::ErrorCode válido [SWS_PHM_01243]. Pós-condição da chamada é um objeto de exceção completamente inicializado, o qual disponibiliza o código de erro passado de forma inalterada para consulta.

Como o construtor é especificado explicitamente como noexcept e «exception safe» [SWS_PHM_01243], a ocorrência de exceções durante a própria construção da exceção está excluída. Uma falha na criação do objeto não pode, portanto, ocorrer, o que impede uma interrupção prematura via std::terminate durante o relato do erro. A segurança de threads especificada («thread-safe») protege adicionalmente contra corrupção de dados quando múltiplos threads relatam estados de erro em paralelo por meio de exceções próprias [SWS_PHM_01243]. Cenários de erro não afetam, por conseguinte, a própria classe de exceção, mas refletem as causas de erro funcionais codificadas no ara::core::ErrorCode encapsulado do domínio de erro de PHM.

Este guia foi gerado por uma IA com base na especificação da AUTOSAR Adaptive Platform R25-11.

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

Construtores e destrutor

PhmException função

Construct a new PlatformHealthManagement exception object containing an error code.

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

Documentação dos métodos

função 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#cc6d656c
Content hash
cc6d656c
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