Kapselt und identifiziert allgemeine Kommunikationsfehler der Middleware für die standardisierte Fehlerbehandlung.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 13073fe45989HerkunftOffene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Kapselt und identifiziert allgemeine Kommunikationsfehler der Middleware für die standardisierte Fehlerbehandlung.
Die Klasse ara::com::ComErrorDomain repräsentiert die Kommunikationsfehlerdomäne zur Identifikation allgemeiner, nicht schnittstellenspezifischer Fehler in der ara::com-API ([SWS_CM_11265]). Sie stellt Fehlerbeschreibungen für Fehlercodes wie ComErrc::kCommunicationFailure bereit und ermöglicht deren Abfrage über Message() oder die Wandlung in eine Ausnahme mittels ThrowAsException() ([SWS_CM_11332]). Da ihr Standardkonstruktor gelöscht ist, agiert sie als zustandslose, threadsichere Domäneninstanz für das fehlertragende ara::core::Result.
Kontext
Die Klasse ara::com::ComErrorDomain repräsentiert die standardisierte Kommunikationsfehlerdomäne der Adaptive Platform für das Funktionscluster Communication Management (SWS CommunicationManagement S. 439). Sie leitet von der Basisklasse ara::core::ErrorDomain ab und definiert den semantischen Kontext für allgemeine Fehler, die während Methodenaufrufen oder Datenübertragungen auftreten können, jedoch nicht spezifisch für ein einzelnes ServiceInterface sind ([SWS_CM_11265]). In der Fehlerarchitektur von ara::com grenzt sie allgemeine Kommunikationsstörungen systematisch von E2E-Überwachungsfehlern sowie anwendungsspezifischen Dienstfehlern ab (SWS CommunicationManagement §7.5.22.6 „Error Related Data Types“).
Zu ihren zentralen Interaktionspartnern gehören die Adaptive Application, die Dienst- und Proxy-Implementierungen der Middleware sowie die Datentypen ara::core::ErrorCode und ara::core::Result des Basissystems (EXP ARAComAPI §4.7 „Error Handling“). Für die semantische Typbindung stellt die Klasse die Typ-Aliase Errc für die Fehlercode-Enumeration ComErrc ([SWS_CM_11336]) sowie Exception für die zugehörige Ausnahmeklasse ComException bereit ([SWS_CM_11337]).
Als Spezifikationsklasse für eine Fehlerdomäne ist die Erzeugung von ara::com::ComErrorDomain durch die Löschung des Standardkonstruktors ComErrorDomain() = delete; unterbunden ([SWS_CM_11330]). Interpretation: Die Bereitstellung der Domäneninstanz dürfte als statisches Singleton über die Plattform erfolgen, sodass Anwendungskomponenten die Domäne nicht dynamisch instanziieren oder verwalten müssen. Frage Q-bf957a108c0a5378 (offen)
Die Instanz agiert als zustandsloser Deskriptor ohne veränderliche Attribute. Sämtliche bereitgestellten Methoden wie Name() ([SWS_CM_11331]) und Message() ([SWS_CM_11332]) sind als const noexcept deklariert. Dies gewährleistet eine uneingeschränkte Threadsicherheit bei nebenläufigen Fehlerabfragen durch parallele Anwendungs- und Middleware-Threads.
Nutzungspfad
Der typische Nutzungspfad umfasst die Erkennung, Übermittlung und Auswertung eines Fehlers über die Schnittstellen von ara::com:
Die Anwendung initiiert eine Service-Interaktion, beispielsweise über den Aufrufoperator der Methodenklasse operator() ([SWS_CM_00196]).
Erkennt die Middleware während der Verarbeitung einen Fehlerfall, wie etwa eine Kommunikationsstörung oder einen unkonfigurierten Anwendungsfehler ([SWS_CM_00048]), wird die Operation SetError am korrespondierenden Promise aufgerufen (SWS CommunicationManagement S. 300).
Dabei wird ein ara::core::ErrorCode konstruiert, dessen Domäne auf ara::com::ComErrorDomain ([SWS_CM_11329]) und dessen numerischer Code auf einen spezifischen Enum-Wert wie ComErrc::kCommunicationFailure gesetzt ist ([SWS_CM_10432]).
Das an die Anwendung zurückgegebene ara::core::Future bzw. ara::core::Result transportiert den Fehlercode im Fehlerzustand an den Aufrufer (EXP ARAComAPI §4.7 „Error Handling“).
Die Anwendung prüft das Result und nutzt die Domänenfunktionen Name() ([SWS_CM_11331]) und Message() ([SWS_CM_11332]), um Fehlermeldungen für Protokollierung oder Diagnose aufzulösen.
Falls die Anwendungslogik eine Ausnahme erwartet und C++-Exceptions aktiviert sind, kann die Überführung in eine ComException mittels ThrowAsException() ausgelöst werden ([SWS_CM_11333]).
Das Fehlerkonzept von ara::com unterscheidet strikt zwischen behebbaren Fehlern (Recoverable Errors) und schwerwiegenden Programmierverletzungen (Violations oder Corruptions) (EXP ARAComAPI §4.7 „Error Handling“). Behebbare Fehler werden über ara::core::Result und ara::core::ErrorCode abgewickelt, wobei Fehlercodes der Domäne ComErrorDomain über den Bezeichner-Alias Errc adressiert werden ([SWS_CM_11336]).
Tritt beispielsweise während eines Fernaufrufs eine Übertragungsunterbrechung auf, meldet das System ComErrc::kCommunicationFailure ([SWS_CM_10432]). Bei einem unkonfigurierten Anwendungsfehler bricht die Middleware den Aufruf ab und setzt ebenfalls einen entsprechenden Fehlercode der Domäne ([SWS_CM_00048], SWS CommunicationManagement S. 300).
Soll ein Fehlercode als Ausnahme geworfen werden, instanziiert ThrowAsException() eine Ausnahme des Typs ComException ([SWS_CM_11337]) und wirft diese ([SWS_CM_11333]). Diese Methode ist nicht ausnahmesicher (not exception safe) und nimmt laut Spezifikation bei deaktivierten C++-Exceptions nicht an der Überladungsauflösung teil ([SWS_CM_11333]). Nicht behebbare Systemverletzungen führen dagegen direkt zum Plattformabbruch und werden nicht über ComErrorDomain behandelt (EXP ARAComAPI §4.7 „Error Handling“).
Dieser Leitfaden wurde von einer KI auf Basis der AUTOSAR-Spezifikationen R25-11 erstellt.
Creates a new instance of ara::com::ComException from errorCode and throws it. As per [SWS_CORE_10304], this function does not participate in overload resolution when C++ exceptions are disabled in the compiler toolchain.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 4c51965f3a93HerkunftOffene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Verwendung
Die Elementfunktion Name() der Klasse ara::com::ComErrorDomain dient dem standardisierten Abruf der textuellen Bezeichnung dieser Fehlerdomäne ([SWS_CM_11331]). Der Aufruf erfolgt synchron, erfordert keine Übergabeparameter und liefert einen konstanten Zeiger vom Typ const char * auf die zugeordnete Zeichenkette zurück ([SWS_CM_11331]). Die genaue Repräsentation der gelieferten Zeichenkette richtet sich nach den Vorgaben für ara::com::ComErrorDomain in [SWS_CORE_90023]. Die Deklaration ist über den Header ara/com/com_error_domain.h einzubinden ([SWS_CM_11331]).
Fehlerbehandlung und Nebenläufigkeit
Die Methode ist mit der Spezifikation noexcept versehen und als ausnahmesicher (exception safe) eingestuft ([SWS_CM_11331]). Es werden im Fehlerfall weder Exceptions geworfen noch spezifische Fehlercodes zurückgemeldet, da es sich um eine reine Leseoperation handelt. Da ausschließlich eine unveränderliche Zeichenkettenkonstante adressiert wird, dürfte die Methode reentrant sein und nebenläufige Aufrufe aus mehreren Threads ohne externe Synchronisation sicher unterstützen. Frage Q-a9f6ae55558ebb1f (offen)
Zusammenspiel
Die Funktion ist Bestandteil der standardisierten Fehlerdomänen-Identifikatoren innerhalb der Kommunikationsverwaltung (AUTOSAR_AP_SWS_CommunicationManagement §1 „Change History“). Das Namens- und Schnittstellenschema ist konsistent über verwandte Domänen umgesetzt: So definieren auch die End-to-End-Fehlerdomäne ara::com::e2e::ComE2EErrorDomain via [SWS_CM_12507] sowie die SecOC-FVM-Fehlerdomäne apext::com::secoc::ComSecOcFvmErrorDomain via [SWS_CM_12518] gleichartige Name()-Methoden zur Identifikation.
Dieser Text wurde von einer KI auf Basis der AUTOSAR-Spezifikation generiert.
Creates a new instance of ara::com::ComException from errorCode and throws it. As per [SWS_CORE_10304], this function does not participate in overload resolution when C++ exceptions are disabled in the compiler toolchain.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: bc30613084e7HerkunftOffene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Verwendung
Die Elementfunktion ThrowAsException der Fehlerdomäne ara::com::ComErrorDomain ([SWS_CM_11333]; SWS CommunicationManagement §8.12.4.2.2.3 „ThrowAsException“) erzeugt synchron aus einem übergebenen Fehlercode errorCode (vom Typ const ara::core::ErrorCode&) eine Instanz der Ausnahme ara::com::ComException und wirft diese unmittelbar aus. Die Schnittstelle besitzt keinen Rückgabewert (void) und wird über die Header-Datei ara/com/com_error_domain.h deklariert.
Fehlerbehandlung und Exception-Sicherheit
Die Signatur ist mit noexcept(false) deklariert und als nicht ausnahmesicher (not exception safe) spezifiziert ([SWS_CM_11333]), da das Auslösen der Exception der primäre Zweck der Funktion ist. Spezifische DET- oder DEM-Meldungen sind für diesen Aufruf nicht definiert.
Randbedingungen und Einschränkungen
Als zentrale Randbedingung gilt: Wenn C++-Exceptions in der Compiler-Toolchain deaktiviert sind, nimmt die Funktion gemäß [SWS_CORE_10304] nicht an der Überladungsauflösung teil ([SWS_CM_11333]). Interpretation: In Software-Architekturen mit deaktivierter Ausnahmebehandlung dürfte die Funktion daher zur Übersetzungszeit nicht aufrufbar sein. Frage Q-437f825160e6801e (offen)
gemini-3.8-flash-medium· 2026-10-13