Dient als Basisklasse für alle AUTOSAR-Ausnahmen und kapselt einen threadsicheren Fehlercode zur Auswertung.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: d4eaa8466f70HerkunftOffene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Dient als Basisklasse für alle AUTOSAR-Ausnahmen und kapselt einen threadsicheren Fehlercode zur Auswertung.
Die Klasse ara::core::Exception dient als gemeinsame Basisklasse für alle Ausnahme-Typen der Adaptive Platform und bettet einen ErrorCode in die standardisierte C++-Ausnahmehierarchie ein [SWS_CORE_00611]. Beim Auftreten von Fehlern transportiert sie diesen Fehlercode threadsicher zu einem Handler, der ihn über Error() oder die abgeleitete Standardmethode what() auswerten kann [SWS_CORE_00613]. Sämtliche Operationen sind strikt ausnahmesicher und als noexcept deklariert. Um versehentliches Object Slicing bei abgeleiteten Typen auszuschließen, sind Kopieroperationen geschützt ausgeführt.
Kontext
Die Klasse ara::core::Exception dient als gemeinsame Basisklasse für alle Ausnahme-Typen innerhalb der AUTOSAR Adaptive Platform. Sie schlägt die Brücke zwischen der Ausnahmebehandlung der C++-Standardbibliothek und dem AUTOSAR-Fehlermodell: Einerseits leitet sie öffentlich von std::exception ab und überschreibt deren virtuelle Elementfunktion what()[SWS_CORE_00612], andererseits transportiert sie ein eingebettetes Fehlerobjekt vom Typ ara::core::ErrorCode[SWS_CORE_00611], [SWS_CORE_00613].
Die Hauptverantwortung von ara::core::Exception besteht darin, Fehlerinformationen über Aufrufgrenzen hinweg im Ausnahmefall strukturiert bereitzustellen. Interpretation: Die Klasse dürfte als gemeinsame Wurzel für domänenspezifische Ausnahmeklassen der Plattform konzipiert sein; ihre Kopieroperationen sind als protected spezifiziert, um unbeabsichtigtes Object Slicing bei abgeleiteten Instanzen zu verhindern [SWS_CORE_00614], [SWS_CORE_00618]. Frage Q-20ffec7888b9e724 (offen)
Die Erzeugung einer ara::core::Exception erfordert zwingend die explizite Angabe eines Fehlercodes beim Aufruf des Konstruktors [SWS_CORE_00611]. Dieser Konstruktor ist als noexcept definiert und wirft somit selbst keine Ausnahmen.
Die Besitzverhältnisse und Kopiermöglichkeiten folgen strikten Schutzregeln: Sowohl der Kopierkonstruktor [SWS_CORE_00618] als auch der Kopierzuweisungsoperator [SWS_CORE_00614] besitzen den Zugriffsmodifikator protected. Dies verhindert, dass polymorphe Unterklassen über Schnittstellen der Basisklasse unvollständig kopiert werden. Für den Transfer von Ressourcen stehen dagegen der Verschiebekonstruktor [SWS_CORE_00615] und der Verschiebezuweisungsoperator mit Referenz-Qualifier &[SWS_CORE_00616] öffentlich als noexcept=default bereit.
Die Zerstörung erfolgt deterministisch über den virtuellen Destruktor [SWS_CORE_00617], der als noexcept override=default spezifiziert ist und die ordnungsgemäße Bereinigung abgeleiteter Instanzen sicherstellt. Nebenläufige Lesezugriffe auf die Methoden sowie die Instanziierung sind als threadsicher ausgewiesen [SWS_CORE_00611], [SWS_CORE_00612], [SWS_CORE_00613].
Nutzungspfad
Der reguläre Ablauf erstreckt sich von der Fehlererkennung über das Auslösen der Ausnahme bis hin zur strukturierten Diagnose im Ausnahme-Handler:
Erzeugung und Auslösen: Eine Komponente stellt eine Fehlersituation fest, instanziiert die Exception mit dem passenden ErrorCode[SWS_CORE_00611] und wirft das Objekt via throw.
Abfangen: Ein übergeordneter Block fängt das Objekt per Referenz ab (beispielsweise als const ara::core::Exception& oder polymorph als const std::exception&).
Standardisierte Textausgabe: Über what() kann eine textuelle Erläuterung als nullterminierte Zeichenkette bezogen werden [SWS_CORE_00612]. Alle Lebensdauergarantien von std::exception::what bleiben dabei vollständig erhalten.
Detaillierte Fehlerprüfung: Über die Elementfunktion Error() greift der Handler auf eine konstante Referenz des eingebetteten ErrorCode zu [SWS_CORE_00613], um systemspezifische Fehlerdomänen und Codes maschinell auszuwerten.
Lebensdauerbedingungen: Die durch Error() bereitgestellte Referenz bindet an das Ausnahme-Objekt [SWS_CORE_00613]; sie darf nicht über die Lebensdauer der Exception hinaus verwendet werden. Für die Rückgabe von what() gelten die Lebensdauerregeln der Standardbibliothek [SWS_CORE_00612].
Verhinderung ungültiger Objektzustände: Durch die Kapselung der Kopieroperationen im protected-Bereich wird verhindert, dass polymorphe Unterklassen versehentlich durch Slicing inkonsistent werden [SWS_CORE_00614], [SWS_CORE_00618].
Dieser Leitfaden basiert auf der Spezifikation AUTOSAR Adaptive Platform Release R25-11.
Return the explanatory string. This function overrides the virtual function std::exception:: what. All guarantees about the lifetime of the returned pointer that are given for std::exception::what are preserved. ≙ std::exception::
Return the explanatory string. This function overrides the virtual function std::exception:: what. All guarantees about the lifetime of the returned pointer that are given for std::exception::what are preserved.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 1b4e9bb17f9aHerkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Die Elementfunktion what der Klasse ara::core::Exception dient dem synchronen Abruf einer erklärenden Zeichenkette zum aufgetretenen Fehler [SWS_CORE_00612]. Sie überschreibt die virtuelle Funktion std::exception::what und liefert einen Zeiger auf eine nullterminierte Zeichenkette (const char*) zurück [SWS_CORE_00612].
Verwendung und Lebensdauer
Die Funktion erwartet keine Übergabeparameter. Hinsichtlich der Gültigkeit des zurückgegebenen Zeigers bleiben sämtliche Garantien erhalten, die für std::exception::what gelten [SWS_CORE_00612]. Um die Funktion nutzen zu können, ist die Header-Datei ara/core/exception.h einzubinden [SWS_CORE_00612].
Fehlerbehandlung und Nebenläufigkeit
Ausnahmesicherheit: Die Operation ist als noexcept deklariert und als ausnahmesicher (exception safe) spezifiziert; sie wirft selbst keine Ausnahmen [SWS_CORE_00612].
Nebenläufigkeit: Die Ausführung ist als threadsicher (thread-safe) spezifiziert [SWS_CORE_00612]. Aufrufe können somit sicher aus parallelen Threads erfolgen.
Dieser Nutzungshinweis wurde automatisiert generiert.
gemini-3.8-flash-medium· 2026-10-13