Dient dem Freshness Value Manager zum Kapseln und Werfen von Fehlerzuständen mit einem Fehlercode.
Kontext
Die Klasse apext::tsync::TsyncFvmException ist eine spezialisierte Ausnahmeklasse innerhalb des Moduls tsync der AUTOSAR Adaptive Platform. Gemäß der Modulspezifikation dient sie der Kapselung und Weitergabe von Fehlerzuständen, die durch den Freshness Value Manager ausgelöst werden. Die Klasse ist als direkte Unterklasse von ara::core::Exception definiert und stellt somit die standardisierte C++-Ausnahmebehandlung für Fehler im Umfeld der Frischewert-Verwaltung sicher.
Zu den primären Interaktionspartnern zählen der Freshness Value Manager als werfende Instanz sowie anwendende Software-Komponenten und Synchronisationsdienste, welche Frischeprüfungen für gesicherte Kommunikationsbeziehungen anfordern. Tritt bei der Verifikation oder Berechnung eines Frischewerts eine Ausnahmebedingung auf, instanziiert der Freshness Value Manager dieses Objekt zur Benachrichtigung des Aufrufers. Die Deklaration und Schnittstellendefinition erfolgt über die Header-Datei apext/tsync/fvm_error_domain.h [SWS_TS_14204].
Lebenszyklus
Der Lebenszyklus eines Objekts vom Typ apext::tsync::TsyncFvmException ist an den Lebenszyklus regulärer C++-Ausnahmen gebunden. Die Erzeugung erfolgt über den expliziten Konstruktor TsyncFvmException, welcher einen Fehlercode vom Typ ara::core::ErrorCode entgegennimmt [SWS_TS_14204]. Dieser Konstruktor ist mit der Spezifikation noexcept deklariert, wodurch garantiert wird, dass die Objekterzeugung selbst ausnahmesicher ist und unter keinen Umständen sekundäre Ausnahmen wirft [SWS_TS_14204].
Die Klasse ist explizit als ausnahmesicher (exception safe) und threadsicher (thread-safe) spezifiziert [SWS_TS_14204]. Dies erlaubt die sichere Erzeugung und Weitergabe von Instanzen auch in komplexen, mehrfädigen Laufzeitumgebungen, ohne dass dabei Datenrennen entstehen können.
Interpretation: Hinsichtlich der Besitzverhältnisse wird die Ausnahme typischerweise per Wert geworfen und im Aufrufstapel per Referenz auf ein konstantes Objekt (const apext::tsync::TsyncFvmException&) abgefangen. Frage Q-6e8c4ad080550a52 (offen) Nach der Konstruktion durchläuft das Objekt keine weiteren Zustandsänderungen; seine Zerstörung erfolgt automatisch beim Verlassen des behandelnden catch-Blocks.
Nutzungspfad
Der reguläre Nutzungspfad vollzieht sich im Rahmen einer vom Freshness Value Manager durchgeführten Validierung oder Aktualisierung von Frischewerten. Erkennt der Manager eine Verletzung der Frischeintegrität oder einen internen Verarbeitungsfehler, leitet er die Fehlerbehandlung ein:
- Fehleridentifikation: Der Freshness Value Manager stellt einen Fehlerzustand fest und erzeugt ein entsprechendes
ara::core::ErrorCode-Objekt.
- Instanziierung: Das Ausnahmeobjekt wird unter Übergabe des Fehlercodes über den Konstruktor initialisiert [SWS_TS_14204].
- Auslösen: Die Ausnahme wird mittels
throw in den Aufrufkontext geworfen.
- Auswertung: Die aufrufende Anwendung oder Schicht fängt die Ausnahme ab und greift auf den eingebetteten Fehlercode zu, um adäquate Fehlerbehebungs- oder Degradationsmaßnahmen einzuleiten.
Sequenzdiagramm: Typischer Ablauf der Fehlerbehandlung mit apext::tsync::TsyncFvmException vom Erkennen im Freshness Value Manager bis zum Abfangen im Aufrufer. Quellen: [SWS_TS_14204]
Fehlerszenarien
Da apext::tsync::TsyncFvmException selbst als Fehlersignalisierungsmechanismus konzipiert ist, liegen funktionale Fehlerszenarien vor allem im fehlerhaften Umgang mit der Ausnahme begründet. Als Vorbedingung für die Erzeugung gilt die Übergabe eines gültigen ara::core::ErrorCode an den Konstruktor [SWS_TS_14204]. Weil der Konstruktor jedoch als noexcept definiert ist, bleibt die Objekterzeugung selbst bei unerwarteten Fehlerwerten stabil [SWS_TS_14204].
Weil der Definitionsheader apext/tsync/fvm_error_domain.h vorgegeben ist, dürfte der gekapselte errorCode vorzugsweise der spezialisierten Fehlerdomäne des Freshness Value Managers entstammen [SWS_TS_14204]. Frage Q-91a4f2d66128bb91 (offen) Ein schwerwiegendes Fehlerszenario entsteht, wenn die geworfene Ausnahme auf Systemebene von keinem catch-Block behandelt wird; dies führt nach C++-Standardsemantik unweigerlich zum Aufruf von std::terminate und damit zum Prozessabbruch. Durch die garantierte Threadsicherheit nach [SWS_TS_14204] sind jedoch Fehler durch gleichzeitige Zugriffe aus parallelen Threads ausgeschlossen.
Dieser Leitfaden basiert ausschließlich auf den Spezifikationen des AUTOSAR-Releases R25-11.
gemini-3.8-flash-medium· 2026-10-13