Encapsulation of an ErrorDomain. An ErrorDomain is the controlling entity for ErrorCode’s error code values, and defines the mapping of such error code values to textual representations. This type constitutes a base class for ErrorDomain implementations. This class is a literal type, and subclasses are strongly advised to be literal types as well.
Dient als Basisklasse zur Steuerung von Fehlercodes und bildet domänenspezifische Fehlerwerte auf Textmeldungen ab.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: d0712f7c0a23HerkunftOffene Fragen (2)
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Dient als Basisklasse zur Steuerung von Fehlercodes und bildet domänenspezifische Fehlerwerte auf Textmeldungen ab.
Die Klasse ara::core::ErrorDomain dient als abstrakte Basisklasse zur Steuerung von Fehlerwerten und ordnet bereichsspezifische Codes ihren textuellen Darstellungen zu [SWS_CORE_00153]. Subklassen kapseln eine systemweit eindeutige Identifikationsnummer und definieren die Übersetzung in unveränderliche Fehlertexte sowie die typspezifische Ausnahmebehandlung. Um die Verwendung als Literal Type zur Übersetzungszeit zu ermöglichen, verfügt die Basisklasse über einen nicht-virtuellen, geschützten Destruktor [SWS_CORE_00136]. Kopier- und Verschiebeoperationen sind dabei vollständig unterbunden, sodass Instanzen als unveränderliche Identitäten fungieren.
Kontext
Die Klasse ara::core::ErrorDomain bildet die gemeinsame Grundlage für das strukturierte Fehlermanagement in der AUTOSAR Adaptive Platform. Sie fungiert als abstrakte Basisklasse für konkrete Fehlerdomänen und übernimmt die zentrale Steuerungsverantwortung für Fehlerwerte, die in ara::core::ErrorCode gekapselt werden. Jede Domäne spannt einen eigenen Namensraum auf und definiert die Abbildung von domänenspezifischen Fehlerwerten des Typs CodeType ([SWS_CORE_00122]) auf aussagekräftige Textdarstellungen über Message() ([SWS_CORE_00153]). Darüber hinaus stellt die Klasse den Typalias IdType ([SWS_CORE_00121]) für systemweit eindeutige Domänenkennungen sowie SupportDataType ([SWS_CORE_00123]) für herstellerspezifische Zusatzdaten bereit.
Im Gesamtsystem interagiert ara::core::ErrorDomain mit drei wesentlichen Partnern:
Subklassen: Spezifische Fehlerdomänen erben von ara::core::ErrorDomain und implementieren die reinen virtuellen Elementfunktionen für Domänennamen, Fehlermeldungen und Ausnahmebehandlung.
ara::core::ErrorCode: Repräsentiert einen konkreten Fehlerwert und delegiert die Ermittlung des beschreibenden Texts an die zugeordnete Fehlerdomäne.
Client / Anwendungscode: Fragt über den Fehlercode oder direkt an der Domäne Statusinformationen ab ([SWS_CORE_00152]) oder empfängt ausgelöste C++-Ausnahmen ([SWS_CORE_00154]).
Die Instanziierung von ara::core::ErrorDomain erfolgt geschützt: Der Konstruktor besitzt die Sichtbarkeit protected und erwartet eine systemweit eindeutige Domänenkennung vom Typ IdType ([SWS_CORE_00135]). Da der Konstruktor als constexpr und noexcept deklariert ist, unterstützt die Basisklasse die Erzeugung als Literal Type zur Übersetzungszeit. Subklassen wird ausdrücklich empfohlen, diese Eigenschaft als Literal Type ebenfalls zu gewährleisten.
Jegliche Duplizierung oder Übertragung von Domäneninstanzen ist unterbunden:
Der Destruktor ist als protected deklariert und als Standardimplementierung definiert ([SWS_CORE_00136]). Er ist bewusst trivial und nicht-virtuell gehalten, damit die Klasse ein Literal Type bleiben kann. Obwohl ara::core::ErrorDomain rein virtuelle Schnittstellen bereitstellt, ist keine polymorphe Zerstörung über Basisklassenzeiger erforderlich ([SWS_CORE_00136]). Konkrete Domäneninstanzen dürften in der Praxis als langlebige oder statische Objekte verwaltet werden (Interpretation). Frage Q-a874dd64f6320d21 (offen)
Bezüglich der Besitzverhältnisse verbleiben alle Zeiger auf Namen ([SWS_CORE_00152]) und Fehlertexte ([SWS_CORE_00153]) im Besitz der Domänenklasse und dürfen von Clients nicht freigegeben werden. Alle Lese- und Vergleichsoperationen sind threadsicher und ausnahmesicher ([SWS_CORE_00135], [SWS_CORE_00151]).
Nutzungspfad
Zwei Instanzen von ara::core::ErrorDomain vergleichen genau dann als gleich, wenn ihre über Id() ([SWS_CORE_00151]) ermittelten Domänenkennungen übereinstimmen ([SWS_CORE_00137], [SWS_CORE_00138]). Der typische Ablauf bei der Fehlerauflösung und Ausnahmebehandlung gliedert sich in folgende Schritte:
Domänenidentifikation: Der Client oder das Fehlerobjekt ermittelt den Domänennamen als nullterminierte Zeichenkette über Name() ([SWS_CORE_00152]).
Meldungsauflösung: Über Message(errorCode) wird der numerische Fehlerwert an die Domäne übergeben ([SWS_CORE_00153]). Die Domäne liefert einen zeigerbasierten, nullterminierten Fehlertext zurück, der niemals nullptr ist.
Ausnahmebehandlung: Soll ein Fehlercode in eine Ausnahme überführt werden, ruft der Client ThrowAsException(errorCode) auf ([SWS_CORE_00154]). Die Domäne wirft daraufhin eine passende Instanz von ara::core::Exception, die den übergebenen Fehlercode kapselt.
Im Umgang mit ara::core::ErrorDomain sind folgende Fehlerszenarien und Schnittstellenanforderungen zu berücksichtigen:
Falsche Domänenzugehörigkeit: Wird der Methode Message() ein errorCode übergeben, der nicht aus dieser spezifischen ErrorDomain stammt, stellt dies die spezifizierte Verletzung WrongDomainOfAn-ErrorCodeViolation dar ([SWS_CORE_00153]). Aufrufer müssen gewährleisten, dass der Fehlercode zur Domäneninstanz passt.
Deaktivierte C++-Ausnahmen: Die Methode ThrowAsException() ist nicht ausnahmesicher (not exception safe) und wirft eine Ausnahme ([SWS_CORE_00154]). Sind C++-Ausnahmen in der Compiler-Toolchain deaktiviert, darf diese Funktion nicht an der Überladungsauflösung teilnehmen ([SWS_CORE_00154]).
Nullzeiger-Ausschluss: Weder Name() noch Message() dürfen jemals nullptr zurückgeben ([SWS_CORE_00152], [SWS_CORE_00153]). Eine Subklassenimplementierung, die nullptr liefert, bricht die Schnittstellenspezifikation.
Dieser Leitfaden wurde durch einen KI-Kurations-Assistenten auf Basis der AUTOSAR-Spezifikation R25-11 generiert.
Compare for equality with another ara::core::ErrorDomain instance. Two ara::core::ErrorDomain instances compare equal when their identifiers (returned by Id()) are equal
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 59f6b727c495Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Die Elementfunktion Id() der Klasse ara::core::ErrorDomain aus der Header-Datei ara/core/error_domain.h liefert synchron den eindeutigen Bezeichner der jeweiligen Fehlerdomäne zurück ([SWS_CORE_00151]). Der Aufruf erwartet keine Übergabeparameter und gibt den Domänenidentifikator als Wert des Typs IdType zurück, wodurch eine eindeutige Unterscheidung verschiedener Fehlerdomänen im Gesamtsystem gewährleistet wird.
Für die Fehlerbehandlung ist relevant, dass die Funktion als noexcept deklariert und als exception safe eingestuft ist ([SWS_CORE_00151]). Sie wirft mithin niemals Ausnahmen und meldet weder Fehlercodes noch Sonderfälle. Durch die Eigenschaft als constexpr-Methode kann der Bezeichner bei Bedarf bereits zur Übersetzungszeit evaluiert und in konstanten Ausdrücken genutzt werden.
In Bezug auf Nebenläufigkeit und Aufrufbedingungen ist Id() als thread-safe spezifiziert ([SWS_CORE_00151]). Der Aufruf ist zustandslos und frei von verändernden Nebeneffekten, sodass beliebig viele Threads simultan und ohne externe Sperrmechanismen auf dieselbe Instanz zugreifen dürfen.
Im Zusammenspiel innerhalb der Domänenarchitektur bildet der Bezeichner das primäre Vergleichskriterium: Zwei Instanzen von ara::core::ErrorDomain gelten laut Spezifikation genau dann als gleich, wenn ihre durch Id() gelieferten Kennungen übereinstimmen, was direkt vom Gleichheitsoperator operator== umgesetzt wird ([SWS_CORE_00137]).
Dieser Nutzungshinweis wurde von einer KI erstellt und basiert auf AUTOSAR Adaptive R25-11.
Return a textual representation of the given errorCode.
The returned pointer remains owned by the ara::core::ErrorDomain sub-class and shall not be freed by clients.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 9827a3eb35a8HerkunftOffene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Die rein virtuelle Funktion Message der Basisklasse ara::core::ErrorDomain aus dem Header ara/core/error_domain.h dient dem synchronen Abrufen einer textuellen Repräsentation für einen übergebenen domänenspezifischen Fehlercode errorCode[SWS_CORE_00153]. Sie liefert einen Zeiger auf eine nullterminierte Zeichenkette (const char *) zurück, der garantiert niemals nullptr ist. Der referenzierte Speicher verbleibt im Besitz der jeweiligen Subklasse von ara::core::ErrorDomain und darf von aufrufenden Clients keinesfalls freigegeben werden [SWS_CORE_00153].
In Bezug auf Nebenläufigkeit und Robustheit ist die Methode als noexcept deklariert, gilt als ausnahmesicher (exception safe) und ist uneingeschränkt threadsicher (thread-safe) ausgelegt [SWS_CORE_00153]. Hinsichtlich möglicher Fehlerzustände ist spezifiziert, dass ein errorCode, der nicht aus der jeweiligen Instanz von ara::core::ErrorDomain stammt, zu einer Verletzung des Typs WrongDomainOfAnErrorCodeViolation führt [SWS_CORE_00153].
Im Zusammenspiel mit dem AUTOSAR-Fehlerbehandlungsmodell überschreiben konkrete Fehlerdomänen wie ara::core::FutureErrorDomain[SWS_CORE_00443] und ara::core::CoreErrorDomain[SWS_CORE_05243] diese Methode, um domainspezifische Fehlercodes in konkrete Meldungstexte zu transformieren. Interpretation: Das Zusammenspiel mit ara::core::ErrorCode::Message()[SWS_CORE_00518], welches eine textuelle Repräsentation als StringView zurückliefert, basiert vermutlich darauf, dass ErrorCode die Übersetzung an die Methode Message der assoziierten Fehlerdomäne weiterleitet. Frage Q-f9007fdf5234b6a4 (offen)
Dieser Nutzungshinweis wurde automatisiert auf Basis der Spezifikationsanforderungen generiert.
This function will determine the appropriate exception type for the given ErrorCode according to [SWS_CORE_10953] and throw it. The thrown exception will contain the given ErrorCode.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: f434ab45abb9Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Die rein virtuelle Methode ThrowAsException der Klasse ara::core::ErrorDomain dient dazu, einen übergebenen Fehlercode synchron als Ausnahme vom Typ ara::core::Exception auszulösen [SWS_CORE_00154]. Die Funktion nimmt als Eingabeparameter eine Referenz auf const ErrorCode &errorCode entgegen und besitzt keinen Rückgabewert, da die Ausführung durch das Werfen der Ausnahme beendet wird [SWS_CORE_00154].
Hinsichtlich des Fehler- und Ausnahmeverhaltens ermittelt die jeweilige Domäne den für den übergebenen Fehlercode passenden Ausnahmetyp gemäß [SWS_CORE_10953] und wirft diesen [SWS_CORE_00154]. Die ausgelöste Exception enthält den übergebenen ErrorCode[SWS_CORE_00154]. Die Funktion ist als nicht ausnahmesicher (not exception safe) eingestuft [SWS_CORE_00154].
Für die Nebenläufigkeit und den Compiler-Kontext gelten folgende Vorgaben:
Thread-Sicherheit: Der Aufruf von ThrowAsException ist als threadsicher (thread-safe) spezifiziert [SWS_CORE_00154].
Einschränkung bei deaktivierten C++-Exceptions: Wenn C++-Exceptions in der Compiler-Toolchain deaktiviert sind, darf die Funktion gemäß [SWS_CORE_10304] nicht an der Überladungsauflösung teilnehmen [SWS_CORE_00154].
Im Zusammenspiel mit anderen Komponenten bildet die Funktion die Grundlage für das Auslösen von Ausnahmen über Fehlerobjekte: So delegiert ara::core::ErrorCode::ThrowAsException das Werfen an die zugehörige Domäne über this->Domain().ThrowAsException(*this)[SWS_CORE_00519]. Konkrete Implementierungen überschreiben diese Schnittstelle, um spezifische Exceptions wie CoreException in CoreErrorDomain[SWS_CORE_05244] oder FutureException in FutureErrorDomain[SWS_CORE_00444] zu werfen.
Dieser Text wurde von einer KI erstellt und basiert auf der Spezifikation AUTOSAR Adaptive R25-11.
Any exception of the type as defined in [SWS_CORE_10953] containing the given ErrorCode
Hinweise: This function shall not participate in overload resolution when C++ exceptions are disabled in the compiler toolchain. As per [SWS_CORE_10304].
Request a governed re-review of this record. The record is not changed immediately.
This dtor is non-virtual (and trivial) so that this class can be a literal type. While this class has virtual functions, no polymorphic destruction is needed.
gemini-3.8-flash-medium· 2026-10-13