DEENESPTFRRUARHIKOZHNL

class ara::sm::SmException

[SWS_SM_81242] Upstream: RS_AP_00119

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

Exception type thrown by State Management.

Header-Datei#include "ara/sm/sm_error_domain.h"
Forwarding-Header#include "ara/sm/sm_fwd.h"
Scopenamespace ara::sm
Basisklasse(n)ara::core::Exception

User GuideKI-GENERIERT

Kapselt Fehlercodes des State Managements zur Weitergabe und Behandlung kritischer Funktionsfehler als C++-Ausnahme.
KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 72647117def3 Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Kapselt Fehlercodes des State Managements zur Weitergabe und Behandlung kritischer Funktionsfehler als C++-Ausnahme.

Die Klasse ara::sm::SmException dient der Weitergabe von Ausnahmesituationen, die bei Operationen des State Managements auftreten [SWS_SM_81242]. Sie leitet sich von ara::core::Exception ab und kapselt einen spezifischen ara::core::ErrorCode zur exakten Identifikation der aufgetretenen Fehlerursache. Ihre Erzeugung erfolgt über einen expliziten Konstruktor, der als threadsicher und ausnahmesicher spezifiziert ist [SWS_SM_81243]. Aufrufende Anwendungen fangen das Objekt strukturiert ab, um den enthaltenen Fehlercode zu analysieren und entsprechende Wiederherstellungsmaßnahmen anzustoßen.

Kontext

Die Klasse ara::sm::SmException fungiert als zentrale Ausnahme für das Funktionscluster State Management in der AUTOSAR Adaptive Platform [SWS_SM_81242]. Sie ist im Header ara/sm/sm_error_domain.h definiert und leitet sich öffentlich von der fundamentalen Plattform-Ausnahmeklasse ara::core::Exception ab AUTOSAR_AP_SWS_StateManagement §8.1.4 „Class: SmException“. Innerhalb des Dokuments wird die Spezifikation der Klasse mit dem Status DRAFT geführt [SWS_SM_81242].

Im architektonischen Kontext verbindet die Klasse drei zentrale Rollen: das State Management als auslösende Instanz bei fehlschlagenden Zustandsoperationen, die aufrufende Adaptive-Anwendung als Behandler sowie die Basisinfrastruktur von ara::core, welche die gemeinsame Schnittstelle zur Fehlerbehandlung bereitstellt. Als Träger von Fehlerzuständen dient sie dazu, Fehlersituationen aus dem Modul sm synchron über den C++-Ausnahmemechanismus an übergeordnete Kontrollinstanzen weiterzureichen.

Lebenszyklus

Die Instanziierung von ara::sm::SmException erfolgt explizit über den Konstruktor SmException(ara::core::ErrorCode errorCode) [SWS_SM_81243]. Dieser Konstruktor ist als noexcept deklariert und weist sowohl die Eigenschaft der Exceptionsicherheit (exception safe) als auch der Threadsicherheit (thread-safe) auf AUTOSAR_AP_SWS_StateManagement §8.1.4.1.1.1 „SmException“. Dadurch ist garantiert, dass das Erzeugen des Ausnahmeobjekts selbst nicht fehlschlägt oder weitere Ausnahmen auslöst, selbst wenn es in nebenläufigen Ausführungskontexten erzeugt wird.

Nach der Erzeugung wird die Instanz üblicherweise per Wert (by value) geworfen und im aufrufenden Kontext als Referenz auf konstante Objekte (const ara::sm::SmException& oder polymorph als const ara::core::Exception&) abgefangen. Da die Spezifikation keine spezifischen Destruktoren oder manuellen Bereinigungsroutinen vorgibt, dürfte die Zerstörung des Ausnahmeobjekts interpretationsgemäß vollständig der C++-Standardsemantik und den Mechanismen der Basisklasse ara::core::Exception folgen, sobald der zuständige Behandlungsblock verlassen wird. Frage Q-85b1fd2f6082db8e (offen)

Nutzungspfad

Der typische Ablauf beginnt bei einer Anwendungs- oder Plattformkomponente, die eine Zustandssteuerungsanforderung an das State Management richtet. Kann die angeforderte Zustandsänderung intern nicht vollzogen werden oder liegt ein schwerwiegender Ausnahmefehler vor, instanziiert das State Management ein Exemplar von ara::sm::SmException unter Angabe des korrespondierenden ara::core::ErrorCode [SWS_SM_81243].

Fehlersignalisierung über SmExceptionAnwendungState ManagementSmExceptionZustandsanforderung ausführenFehler identifizieren (ErrorCode)SmException(errorCode)Instanz bereitgestelltthrow SmExceptioncatch (const SmException&) und Fehlercode auswerten

Sequenzdiagramm: Typische Signalisierung und Abhandlung eines Fehlers mittels SmException im State Management. Quellen: [SWS_SM_81242], [SWS_SM_81243].

Die aufrufende Komponente fängt die geworfene Ausnahme in einem entsprechenden catch-Block ab. Über die von der Basisklasse ara::core::Exception geerbten Methoden kann die Anwendung den gekapselten ara::core::ErrorCode inspizieren, um die Fehlerursache semantisch zuzuordnen und gezielte Maßnahmen zur Fehlerbehebung oder Wiederherstellung des Systemzustands einzuleiten.

Fehlerszenarien

Die Klasse ara::sm::SmException stellt selbst kein fehleranfälliges Operationselement dar, sondern ist das primäre Trägerobjekt für Ausnahmesituationen innerhalb des State Managements [SWS_SM_81242]. Wesentliche Vorbedingung für die Erzeugung ist die Bereitstellung eines initialisierten ara::core::ErrorCode-Objekts beim Konstruktoraufruf [SWS_SM_81243].

Wird eine geworfene ara::sm::SmException im Aufrufstapel von keinem passenden Handler abgefangen, führt dies nach C++-Standardregeln zum Aufruf von std::terminate und damit zum unkontrollierten Abbruch des betroffenen Prozesses. In Implementierungen, die den Verzicht auf Ausnahmen zugunsten von ara::core::Result vorschreiben, wird das Werfen vermieden; steht der Ausnahmepfad jedoch zur Verfügung, sorgt die Kapselung dafür, dass der ursprüngliche Fehlercode unverfälscht zur Fehlerdiagnose transportiert wird.

Dieser Klassen-Leitfaden basiert auf der Spezifikation AUTOSAR Adaptive R25-11. Alle Angaben stützen sich auf die referenzierten Spezifikationspunkte.

UML-Klassendiagramm

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

G nara__sm__SmException872 SmException + SmException() nara__core__Exception792 Exception nara__sm__SmException872->nara__core__Exception792 nstd__exception10 std::exception nara__core__Exception792->nstd__exception10

Konstruktoren und Destruktor

SmException function

Construct a new StateManagement exception object containing an error code.

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

Dokumentation der Methoden

function SmException [SWS_SM_81243] Upstream: RS_AP_00119, RS_AP_00159

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

Construct a new StateManagement exception object containing an error code.

Header-Datei#include "ara/sm/sm_error_domain.h"
Scopeclass ara::sm::SmException
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_SM_81243
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_SM_81243@rel:R25-11#aa947f45
Content hash
aa947f45
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_StateManagement.pdf#nameddest=SWS_SM_81243
Status: valid/unmigrated Version: rel:R25-11#aa947f45 Versionshistorie & Revisions (1 transition)
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_SM_81243@rel:R25-11#aa947f45
Point-in-Time History:
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