DEENESPTFRRUARHIKOZHNL

class ara::com::ComException

[SWS_CM_11327] Upstream: RS_AP_00130, RS_AP_00122, RS_AP_00127

class ComException final :            public ara::core::Exception {...};

Defines a class for exceptions to be thrown by the API.

Header-Datei#include "ara/com/com_error_domain.h"
Forwarding-Header#include "ara/com/com_fwd.h"
Scopenamespace ara::com
Basisklasse(n)ara::core::Exception

User GuideKI-GENERIERT

Dient als API-Ausnahmeklasse zum Kapseln und Melden von Fehlern der Kommunikationsverwaltung über Fehlercodes.
KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: becb2133e102 Herkunft Offene Fragen (2)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Dient als API-Ausnahmeklasse zum Kapseln und Melden von Fehlern der Kommunikationsverwaltung über Fehlercodes.

Die Klasse ara::com::ComException dient in AUTOSAR Adaptive als zentrale Ausnahmeklasse zur Signalisierung von Fehlern bei Aufrufen der Kommunikations-API [SWS_CM_11327]. Sie kapselt einen ara::core::ErrorCode und wird bei fehlgeschlagenen Operationen instanziiert und geworfen, wobei ihr Konstruktor als ausnahmesicher und nicht-werfend definiert ist [SWS_CM_11328]. Sind C++-Ausnahmen in der Compiler-Toolchain deaktiviert, entfallen die entsprechenden werfenden API-Überladungen vollständig aus der Überladungsauflösung. Aufrufer fangen das Ausnahmeobjekt ab, um den enthaltenen Fehlercode zu analysieren und Fehlerbehandlungsmaßnahmen einzuleiten.

Kontext

Die Klasse ara::com::ComException dient im Modul com der AUTOSAR Adaptive Platform als spezialisierte Ausnahmeklasse zur Signalisierung von Fehlern bei Aufrufen der Kommunikations-API [SWS_CM_11327]. Sie leitet öffentlich von der Basisklasse ara::core::Exception ab und ist als final deklariert. Dies verdeutlicht die direkte Integration in die übergreifende Fehlerbehandlungsarchitektur der Adaptive Platform. Durch die Markierung als final dürfte die Klasse als versiegelter Ausnahmetyp konzipiert sein, der nicht für eine weitere Ableitungshierarchie vorgesehen ist. Frage Q-2454b5b73295287b (offen)

Die primäre Aufgabe von ara::com::ComException besteht darin, einen aufgetretenen Fehlerzustand in Form eines ara::core::ErrorCode zu kapseln und über den C++-Ausnahmemechanismus an aufrufende Schichten zu übermitteln [SWS_CM_11328]. Die Deklaration und Definition wird über den Header #include "ara/com/com_error_domain.h" bereitgestellt [SWS_CM_11328]. Als zentrale Interaktionspartner fungieren dabei die nutzende Anwendungssoftware, die internen Service- und API-Funktionen der Kommunikationsverwaltung sowie die Typen der Fehlerdomäne ara::core::ErrorCode.

Lebenszyklus

Der Lebenszyklus eines ara::com::ComException-Objekts beginnt in der Implementierung einer API-Funktion der Kommunikationsverwaltung, sobald eine Operation fehlschlägt und die Ausnahme instanziiert und ausgelöst wird AUTOSAR_AP_SWS_CommunicationManagement §8.12.5 „Class: ComException“. Die Erzeugung erfolgt über den expliziten Konstruktor, welcher das auslösende ara::core::ErrorCode-Objekt übernimmt [SWS_CM_11328].

Dieser Konstruktor ist mit noexcept deklariert und besitzt die Eigenschaft exception safe [SWS_CM_11328]. Dadurch ist garantiert, dass während der Konstruktion des Ausnahmeobjekts selbst keine weiteren Ausnahmen auftreten können. Nach dem Wurf per throw wird das Objekt im Rahmen des Stack-Unwindings transportiert, bis es in einem passenden catch-Block der aufrufenden Schicht gebunden wird. Bezüglich der Besitzverhältnisse wird die Instanz nach dem Verlassen des behandelnden Blocks automatisch auf dem Stack zerstört. Interne Zustandsübergänge im Sinne einer Zustandsmaschine weist die Klasse nicht auf; ihr Zustand bleibt nach der Initialisierung mit dem Fehlercode unveränderlich.

Nutzungspfad

Der typische Nutzungspfad beschreibt den Ablauf von Fehlererkennung, Ausnahmeauslösung und anschließender Behandlung:

  1. Eine Anwendungsfunktion ruft eine Operation der ara::com-Schnittstelle auf.
  2. Tritt während der Verarbeitung ein Fehler auf, erzeugt die API-Implementierung eine neue Instanz von ara::com::ComException aus dem zugehörigen errorCode und wirft diese aus AUTOSAR_AP_SWS_CommunicationManagement §8.12.5 „Class: ComException“.
  3. Die Anwendung fängt die Ausnahme in einem passenden Block ab. Das Abfangen erfolgt anwendungsseitig vermutlich per konstanter Referenz (const ara::com::ComException&), um Kopieroperationen zu vermeiden. Frage Q-5270e026eeac8be7 (offen)
  4. Über die Schnittstelle der Basisklasse greift der Aufrufer auf den enthaltenen ara::core::ErrorCode zu und führt Diagnose- oder Kompensationsschritte durch [SWS_CM_11328].
Ablauf der Ausnahmebehandlung mit ComExceptionAnwendungara::com-LaufzeitComExceptionAPI-Aufruf ausführen()Kommunikationsfehler erkanntComException(errorCode) instanziierenthrow ComExceptioncatch (const ara::com::ComException&) und Fehlercode auswerten

Sequenzdiagramm: Ablauf von Fehlererkennung, Instanziierung und Behandlung von ara::com::ComException. Quellen: [SWS_CM_11327], [SWS_CM_11328], AUTOSAR_AP_SWS_CommunicationManagement §8.12.5 „Class: ComException“

Fehlerszenarien

Im Kontext der Fehlerbehandlung und Toolchain-Konfiguration gelten folgende Bedingungen und Randfälle:

  • Deaktivierte C++-Ausnahmen: Wenn C++-Ausnahmen in der Compiler-Toolchain deaktiviert sind, nehmen API-Funktionen, die ara::com::ComException erzeugen und werfen, gemäß [SWS_CORE_10304] nicht an der Überladungsauflösung teil AUTOSAR_AP_SWS_CommunicationManagement §8.12.5 „Class: ComException“. In diesem Fall greift die fehlerbehandelnde Software auf alternative Rückgabemechanismen zurück.
  • Konstruktor-Typsicherheit: Da der Konstruktor als explicit deklariert ist, werden implizite Typkonvertierungen bei der Übergabe des ara::core::ErrorCode unterbunden [SWS_CM_11328].
  • Hierarchisches Abfangen: Da ara::com::ComException von ara::core::Exception erbt, können Aufrufer Ausnahmen entweder spezifisch als ara::com::ComException oder allgemein über Handler für die Basisklasse behandeln.

Dieser Leitfaden basiert auf der Spezifikation AUTOSAR Adaptive R25-11. Alle Angaben und Verweise stützen sich ausschließlich auf die bereitgestellten Spezifikationsauszüge.

UML-Klassendiagramm

Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.

G nara__com__ComException152 ComException + ComException() nara__core__Exception792 Exception nara__com__ComException152->nara__core__Exception792 nstd__exception10 std::exception nara__core__Exception792->nstd__exception10

Konstruktoren und Destruktor

ComException function

Constructs a new ara::com::ComException containing an ara::core::ErrorCode

explicit ComException (ara::core::ErrorCode errorCode) noexcept;

Dokumentation der Methoden

function ComException [SWS_CM_11328] Upstream: RS_AP_00120, RS_AP_00121, RS_AP_00130

explicit ComException (ara::core::ErrorCode errorCode) noexcept;

Constructs a new ara::com::ComException containing an ara::core::ErrorCode

Header-Datei#include "ara/com/com_error_domain.h"
Scopeclass ara::com::ComException
Exception-Sicherheitexception safe

Parameter (in)

ParameterBeschreibung
errorCodeThe error code.

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_CM_11328
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CM_11328@rel:R25-11#ffcd7502
Content hash
ffcd7502
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_CommunicationManagement.pdf#nameddest=SWS_CM_11328
Status: valid/unmigrated Version: rel:R25-11#5e7d893a Versionshistorie & Revisions (1 transition, 7 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_CM_11328@rel:R25-11#5e7d893a
Point-in-Time History:
Recorded Revisions (7):
  • R25-11rel:R25-11#ffcd75022026-09-30
  • R20-11rel:R20-11#4a6338102026-10-14
  • R21-11rel:R21-11#4a6338102026-10-14
  • R22-11rel:R22-11#17139dec2026-10-14
  • R23-11rel:R23-11#41e9e0262026-10-14
  • R24-11rel:R24-11#94963f6e2026-10-14
  • R25-11rel:R25-11#5e7d893a2026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill