Dient als spezifische C++-Ausnahme zur Signalisierung von Fehlern aus End-to-End-Schnittstellen samt Fehlercode.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 385c2dd6528bHerkunftOffene Fragen (2)
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Dient als spezifische C++-Ausnahme zur Signalisierung von Fehlern aus End-to-End-Schnittstellen samt Fehlercode.
Die Klasse ara::com::e2e::ComE2EException dient als standardisierte C++-Ausnahme zur Meldung von Fehlern aus den E2E-APIs des Kommunikationsmanagements ([SWS_CM_12501]). Sie leitet von ara::core::Exception ab und kapselt einen spezifischen ara::core::ErrorCode, der bei der Instanziierung über einen ausnahmesicheren noexcept-Konstruktor übergeben wird ([SWS_CM_12502]). Falls C++-Ausnahmen in der Compiler-Toolchain deaktiviert sind, nimmt die auslösende Funktion laut Spezifikation nicht an der Überladungsauflösung teil, sodass dieser Fehlerpfad eine aktive Ausnahmeunterstützung voraussetzt.
Innerhalb der Funktionsarchitektur von AUTOSAR Adaptive fungiert ComE2EException als Kommunikationsbrücke zwischen den E2E-Überwachungsroutinen der Plattform und der aufrufenden Anwendungssoftware. Erkennt eine E2E-Funktion bei der Überprüfung oder Verarbeitung von Daten einen Fehlerzustand, wird dieser Fehler über das Werfen dieser Ausnahme an den übergeordneten Kontrollfluss übermittelt (AUTOSAR_AP_SWS_CommunicationManagement §8.15.4 „Class: ComE2EException“).
Lebenszyklus
Die Instanziierung eines Objekts von ComE2EException erfolgt explizit durch Übergabe eines Fehlercodes an den Konstruktor explicit ComE2EException(ara::core::ErrorCode errorCode) noexcept ([SWS_CM_12502], AUTOSAR_AP_SWS_CommunicationManagement §8.15.4.1.1.1 „ComE2EException“). Der Konstruktor ist als noexcept und ausnahmesicher (exception safe) spezifiziert ([SWS_CM_12502]). Dadurch wird garantiert, dass bei der Konstruktion der Ausnahme selbst keine weiteren Ausnahmen geworfen werden können, was die Robustheit im Fehlerpfad sicherstellt.
In Bezug auf die Besitzverhältnisse wird die Ausnahme durch die auslösende E2E-Schnittstelle erzeugt und per Wert geworfen (AUTOSAR_AP_SWS_CommunicationManagement §8.15.4 „Class: ComE2EException“). Anwendungsseitig wird das Objekt typischerweise als konstante Referenz abgefangen. Sobald der entsprechende Behandlungsblock verlassen wird, erfolgt die automatische Zerstörung im Rahmen der regulären C++-Stackabwicklung. Da die Klasse als final definiert ist, sind keine Unterklassen vorgesehen.
Nutzungspfad
Der typische Ablauf bei der Nutzung der Ausnahme gliedert sich in folgende Phasen:
Die Anwendungssoftware ruft eine E2E-geschützte Funktion des Kommunikationsmanagements auf.
Die Anwendung fängt die Ausnahme in einem try-catch-Block ab. Aufrufer dürften hierbei vermutlich (Interpretation) auf die geerbten Basismethoden von ara::core::Exception zugreifen, um den enthaltenen ara::core::ErrorCode für die Fehlerdiagnose auszuwerten. Frage Q-8dfac2428f223afe (offen)
Für die Verwendung von ComE2EException gilt eine wesentliche Vorbedingung hinsichtlich der Toolchain: Gemäß [SWS_CORE_10304] nimmt die Funktion, welche die Instanz erzeugt und wirft, nicht an der Überladungsauflösung (overload resolution) teil, sofern C++-Ausnahmen im Compiler deaktiviert sind (AUTOSAR_AP_SWS_CommunicationManagement §8.15.4 „Class: ComE2EException“). In Laufzeitumgebungen ohne C++-Exception-Unterstützung existiert dieser Signalweg daher nicht; Fehler dürften in diesem Fall vermutlich (Interpretation) über alternative, nicht-ausnahmebasierte Fehlermechanismen der Plattform übermittelt werden. Frage Q-e1b3f4f1dfc191ef (offen)
Sofern Ausnahmen aktiv sind, transportiert jede ComE2EException verbindlich einen Fehlercode ([SWS_CM_12502]). Als Vorbedingung für die Instanziierung muss ein gültiger ara::core::ErrorCode bereitstehen ([SWS_CM_12502]). Da der Konstruktor als ausnahmesicher deklariert ist ([SWS_CM_12502]), kann die Objekterzeugung selbst im Fehlerfall nicht fehlschlagen.
Dieser Leitfaden basiert auf der AUTOSAR-Spezifikation R25-11 und wurde automatisch kuratiert.
UML-Klassendiagramm
Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.
gemini-3.8-flash-medium· 2026-10-13