DEENESPTFRRUARHIKOZHNL

klasse 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

User GuideAI-GEGENEREERD

Kapselt foutcodes van Platform Health Management in als thread-veilige exceptie voor mislukte module-operaties.
DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 9c0b25d6fb92 Herkomst Open vragen (2)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

Kapselt foutcodes van Platform Health Management in als thread-veilige exceptie voor mislukte module-operaties.

De klasse ara::phm::PhmException dient in Platform Health Management als centraal exceptietype voor het inkapselen en doorgeven van modulespecifieke fouten aan aanroepende componenten. Deze wordt bij de foutdetectie expliciet met een ara::core::ErrorCode geïnstantieerd en geworpen om een gestructureerde foutafhandeling via bijbehorende catch-blokken mogelijk te maken [SWS_PHM_01243]. Als wezenlijke randvoorwaarde is de constructie ervan gespecificeerd als noexcept, thread-safe evenals exception-safe, waardoor secundaire fouten bij het aanmaken van de exceptie zijn uitgesloten [SWS_PHM_01243]. Interpretatie: Aanroepers vangen het object typisch per referentie op om de ingesloten foutcode zonder dynamische geheugenallocatie deterministisch te evalueren. Vraag (open)

Context

De klasse ara::phm::PhmException fungeert als specifiek exceptietype voor Platform Health Management (PHM) binnen het AUTOSAR Adaptive Platform. Conform de klassedefinitie leidt de klasse zich publiek af van ara::core::Exception en vormt deze de schakel om fouttoestanden van de module phm te communiceren naar aanroepende systeem- en applicatiecomponenten via het gestandaardiseerde C++-exceptiemechanisme. In de systeemarchitectuur heeft de klasse primair een wisselwerking tussen de operatieve PHM-services, die bewakingsfuncties uitvoeren en bij regelovertredingen fouttoestanden detecteren, en de overkoepelende foutafhandelingsroutines van de applicatie. Door de integratie in het fundamentele foutafhandelingsmodel van ara::core wordt gewaarborgd dat domeinspecifieke foutrapportages uit Platform Health Management uniform kunnen worden getransporteerd en verwerkt.

Levenscyclus

De levenscyclus van een instantie van ara::phm::PhmException begint met de expliciete instantiëring in geval van een fout. Conform [SWS_PHM_01243] wordt het object via de constructor PhmException(ara::core::ErrorCode errorCode) onder inclusie van de header ara/phm/phm_error_domain.h aangemaakt. Het aanmaken is gedeclareerd als noexcept en beschikt zowel over de eigenschappen „exception safe” als „thread-safe” [SWS_PHM_01243]. Dit garandeert dat de instantiëring van het exceptie-object zelf onder hoge gelijktijdigheid veilig plaatsvindt en op geen enkel moment onverwachte secundaire excepties veroorzaakt.

Het object kapselt de overgedragen ara::core::ErrorCode in en bezit na het aanmaken ervan een onveranderlijke toestand. Tijdens de stack unwinding wordt het exceptie-object getransporteerd door de runtime-omgeving. De vernietiging vindt deterministisch plaats bij het verlaten van het afhandelende catch-blok volgens de standaard C++-regels. Interpretatie: Instanties worden vermoedelijk doorgaans direct in de throw-expressie op de stack aangemaakt en per referentie (const ara::phm::PhmException&) opgevangen, zodat er aan de aanroeperszijde geen dynamisch geheugenbeheer vereist is. Vraag Q-37fc47021a78a0db (open)

Gebruikspad

Het typische gebruikspad begint wanneer een bewaakte operatie van Platform Health Management mislukt of er een ontoelaatbare toestandafwijking wordt vastgesteld. De activerende PHM-functie initialiseert vervolgens een exceptie-object met de bijbehorende foutcode en werpt dit vanuit [SWS_PHM_01243]. Aan de aanroeperszijde wordt het beschermde codesegment binnen een try-catch-blok uitgevoerd. Vermoedelijk vangen applicaties de exceptie hetzij specifiek als ara::phm::PhmException, hetzij polymorf via de basisklasse ara::core::Exception op. Vraag Q-54638c0dde7d9195 (open) In de exception-handler wordt de ingesloten ara::core::ErrorCode geëxtraheerd om de oorzaak te analyseren en passende tegenmaatregelen of noodloopstrategieën in te leiden.

Gebruikspad voor het genereren en afhandelen van PhmExceptionAnwendungPHM-DienstFehlerbehandlungPHM-FunktionsaufrufDetectie van een interne foutPhmException(errorCode) werfenAuswertung von ErrorCodeTerugkeer na foutafhandeling

Sequentiediagram: Typisch verloop van de foutdetectie in PHM via het activeren van ara::phm::PhmException tot aan de evaluatie in de handler. Bronnen: [SWS_PHM_01243].

Foutscenario's

Een centraal bestanddeel van ara::phm::PhmException is het transporteren van de foutcode tijdens runtime. Als voorwaarde voor het aanmaken van het object geldt de overdracht van een geldige ara::core::ErrorCode [SWS_PHM_01243]. De na-voorwaarde van de aanroep is een volledig geïnitialiseerd exceptie-object dat de overgedragen foutcode ongewijzigd beschikbaar stelt voor bevraging.

Aangezien de constructor expliciet is gespecificeerd als noexcept en „exception safe” [SWS_PHM_01243], is het optreden van excepties tijdens de constructie van de exceptie zelf uitgesloten. Het mislukken van het aanmaken van het object kan zodoende niet optreden, wat een voortijdige beëindiging via std::terminate tijdens de foutrapportage voorkomt. De gespecificeerde thread-veiligheid („thread-safe”) beschermt bovendien tegen datacorruptie wanneer meerdere threads parallel fouttoestanden melden via eigen excepties [SWS_PHM_01243]. Foutscenario's betreffen bijgevolg niet de exceptieklasse zelf, maar weerspiegelen de functionele foutoorzaken die zijn gecodeerd in de ingekapselde ara::core::ErrorCode van het PHM-foutdomein.

Deze handleiding werd door een AI gegenereerd op basis van de specificatie van AUTOSAR Adaptive Platform R25-11.

UML-klassendiagram

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

Constructors en destructor

PhmException functie

Construct a new PlatformHealthManagement exception object containing an error code.

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

Documentatie van de methoden

functie 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#3cebaef1
Content hash
3cebaef1
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