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

Guide utilisateurGÉNÉRÉ PAR IA

Encapsule les codes d'erreur du Platform Health Management sous forme d'exception thread-safe pour les opérations de module ayant échoué.
GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 9c0b25d6fb92 Provenance Questions ouvertes (2)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

Encapsule les codes d'erreur du Platform Health Management sous forme d'exception thread-safe pour les opérations de module ayant échoué.

La classe ara::phm::PhmException sert, au sein du Platform Health Management, de type d'exception central pour encapsuler et transmettre des erreurs spécifiques au module aux composants appelants. Lors de la détection d'une erreur, elle est explicitement instanciée avec un ara::core::ErrorCode et levée afin de permettre un traitement structuré des erreurs via des blocs catch correspondants [SWS_PHM_01243]. En tant que contrainte essentielle, sa construction est spécifiée comme noexcept, thread-safe et exception-safe, ce qui exclut les erreurs secondaires lors de la création de l'exception [SWS_PHM_01243]. Interprétation : Les appelants interceptent typiquement l'objet par référence afin d'évaluer de manière déterministe le code d'erreur contenu, sans allocation dynamique de mémoire. Question (ouverte)

Contexte

La classe ara::phm::PhmException fait office de type d'exception dédié pour le Platform Health Management (PHM) au sein de l'AUTOSAR Adaptive Platform. Conformément à la définition de la classe, celle-ci dérive publiquement de ara::core::Exception et constitue le lien permettant de communiquer les états d'erreur du module phm aux composants système et applicatifs appelants via le mécanisme standardisé d'exception C++. Dans l'architecture système, la classe interagit principalement entre les services opérationnels du PHM, qui exécutent des fonctions de surveillance et détectent des états d'erreur en cas de violation de règles, et les routines de traitement des erreurs de niveau supérieur de l'application. L'intégration dans le modèle fondamental de traitement des erreurs de ara::core garantit que les rapports d'erreur propres au domaine issus du Platform Health Management peuvent être transportés et traités de manière uniforme.

Cycle de vie

Le cycle de vie d'une instance de ara::phm::PhmException commence par l'instanciation explicite en cas d'erreur. Conformément à [SWS_PHM_01243], l'objet est créé via le constructeur PhmException(ara::core::ErrorCode errorCode) avec inclusion de l'en-tête ara/phm/phm_error_domain.h. La création est déclarée comme noexcept et présente à la fois les propriétés « exception safe » et « thread-safe » [SWS_PHM_01243]. Cela garantit que l'instanciation de l'objet d'exception s'effectue en toute sécurité, même en cas de forte concurrence, et ne déclenche à aucun moment d'exceptions secondaires inattendues.

L'objet encapsule le ara::core::ErrorCode transmis et possède un état immuable après sa création. Pendant le déroulement de la pile, l'objet d'exception est transporté par l'environnement d'exécution. La destruction s'effectue de manière déterministe lors de la sortie du bloc catch de traitement, conformément aux règles standard du C++. Interprétation : Les instances devraient habituellement être créées directement dans l'expression throw sur la pile et interceptées par référence (const ara::phm::PhmException&), de sorte qu'aucune gestion de mémoire dynamique n'est requise du côté de l'appelant. Question Q-37fc47021a78a0db (ouverte)

Parcours d'utilisation

Le chemin d'utilisation typique commence lorsqu'une opération surveillée du Platform Health Management échoue ou qu'un écart d'état non autorisé est constaté. La fonction du PHM déclenchante initialise alors un objet d'exception avec le code d'erreur associé et le lève depuis [SWS_PHM_01243]. Du côté de l'appelant, la section de code protégée est exécutée au sein d'un bloc try-catch. Vraisemblablement, les applications interceptent l'exception soit de manière spécifique en tant que ara::phm::PhmException, soit de manière polymorphique via la classe de base ara::core::Exception. Question Q-54638c0dde7d9195 (ouverte) Dans le gestionnaire d'exceptions, le ara::core::ErrorCode contenu est extrait afin d'analyser la cause et d'engager les contre-mesures ou stratégies de mode dégradé appropriées.

Chemin d'utilisation pour le déclenchement et le traitement de PhmExceptionApplicationPHM-Dienstgestion des erreursPHM-FunktionsaufrufDétection d'une erreur internePhmException(errorCode) werfenAuswertung von ErrorCodeRetour après traitement d'erreur

Diagramme de séquence : Déroulement typique depuis la détection d'erreur dans le PHM jusqu'à l'évaluation dans le gestionnaire en passant par le déclenchement de ara::phm::PhmException. Sources : [SWS_PHM_01243].

Scénarios d'erreur

Le transport du code d'erreur au moment de l'exécution constitue un composant central de ara::phm::PhmException. La transmission d'un ara::core::ErrorCode valide constitue une précondition pour la création de l'objet [SWS_PHM_01243]. La postcondition de l'appel est un objet d'exception complètement initialisé qui met à disposition le code d'erreur transmis, sans modification, pour consultation.

Le constructeur étant explicitement spécifié comme noexcept et « exception safe » [SWS_PHM_01243], la survenue d'exceptions pendant la construction de l'exception elle-même est exclue. Un échec de la création de l'objet ne peut donc pas se produire, ce qui empêche une interruption prématurée via std::terminate pendant le rapport d'erreur. De plus, la sécurité des threads spécifiée (« thread-safe ») protège contre la corruption de données lorsque plusieurs threads signalent en parallèle des états d'erreur via leurs propres exceptions [SWS_PHM_01243]. Par conséquent, les scénarios d'erreur ne concernent pas la classe d'exception elle-même, mais reflètent les causes d'erreur fonctionnelles qui sont encodées dans le ara::core::ErrorCode encapsulé du domaine d'erreur du PHM.

Ce guide a été généré par une IA sur la base de la spécification d'AUTOSAR Adaptive Platform R25-11.

Diagramme 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

Constructeurs et destructeur

PhmException fonction

Construct a new PlatformHealthManagement exception object containing an error code.

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

Documentation des méthodes

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