Dient als API-exceptieklasse voor het inkapselen en melden van fouten van het communicatiebeheer via foutcodes.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: becb2133e102HerkomstOpen vragen (2)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
Dient als API-exceptieklasse voor het inkapselen en melden van fouten van het communicatiebeheer via foutcodes.
De klasse ara::com::ComException dient in AUTOSAR Adaptive als centrale exceptieklasse voor het signaleren van fouten bij aanroepen van de communicatie-API [SWS_CM_11327]. Deze kapselt een ara::core::ErrorCode in en wordt geïnstantieerd en geworpen bij mislukte operaties, waarbij de constructor als uitzonderingsveilig en niet-werpend is gedefinieerd [SWS_CM_11328]. Als C++-excepties in de compiler-toolchain zijn uitgeschakeld, vervallen de overeenkomstige werpende API-overbelastingen volledig uit de overbelastingsresolutie. Aanroepers vangen het exceptie-object op om de ingesloten foutcode te analyseren en foutafhandelingsmaatregelen in gang te zetten.
Context
De klasse ara::com::ComException dient in de module com van het AUTOSAR Adaptive Platform als gespecialiseerde exceptieklasse voor het signaleren van fouten bij aanroepen van de communicatie-API [SWS_CM_11327]. Deze leidt publiek af van de basisklasse ara::core::Exception en is gedeclareerd als final. Dit verduidelijkt de directe integratie in de overkoepelende foutafhandelingsarchitectuur van het Adaptive Platform. Door de aanduiding als final is de klasse vermoedelijk ontworpen als een verzegeld exceptietype dat niet bedoeld is voor een verdere afleidingshiërarchie. Vraag Q-2454b5b73295287b (open)
De primaire taak van ara::com::ComException bestaat erin een opgetreden fouttoestand in de vorm van een ara::core::ErrorCode in te kapselen en via het C++-exceptiemechanisme door te geven aan aanroepende lagen [SWS_CM_11328]. De declaratie en definitie worden beschikbaar gesteld via de header #include "ara/com/com_error_domain.h"[SWS_CM_11328]. Als centrale interactiepartners fungeren daarbij de gebruikende applicatiesoftware, de interne service- en API-functies van het communicatiebeheer en de typen van het foutdomein ara::core::ErrorCode.
Levenscyclus
De levenscyclus van een ara::com::ComException-object begint in de implementatie van een API-functie van het communicatiebeheer zodra een operatie mislukt en de exceptie wordt geïnstantieerd en geworpen AUTOSAR_AP_SWS_CommunicationManagement §8.12.5 “Class: ComException”. Het aanmaken gebeurt via de expliciete constructor, die het veroorzakende ara::core::ErrorCode-object overneemt [SWS_CM_11328].
Deze constructor is gedeclareerd met noexcept en heeft de eigenschap exception safe[SWS_CM_11328]. Hierdoor is gegarandeerd dat tijdens de constructie van het exceptie-object zelf geen verdere excepties kunnen optreden. Na het werpen via throw wordt het object in het kader van stack-unwinding getransporteerd totdat het wordt gebonden in een passend catch-blok van de aanroepende laag. Wat betreft eigendom wordt de instantie na het verlaten van het afhandelende blok automatisch op de stack vernietigd. Interne toestandsovergangen in de zin van een toestandsmachine vertoont de klasse niet; haar toestand blijft na de initialisatie met de foutcode onveranderlijk.
Gebruikspad
Het typische gebruikspad beschrijft het verloop van foutdetectie, het werpen van de exceptie en de daaropvolgende afhandeling:
Een applicatiefunctie roept een operatie van de ara::com-interface aan.
De applicatie vangt de exceptie af in een passend blok. Het afvangen gebeurt aan applicatiezijde vermoedelijk via een constante referentie (const ara::com::ComException&) om kopieeroperaties te voorkomen. Vraag Q-5270e026eeac8be7 (open)
Via de interface van de basisklasse benadert de aanroeper de ingesloten ara::core::ErrorCode en voert diagnose- of compensatiestappen uit [SWS_CM_11328].
In de context van foutafhandeling en toolchain-configuratie gelden de volgende voorwaarden en randgevallen:
Uitgeschakelde C++-excepties: Wanneer C++-excepties in de compiler-toolchain zijn uitgeschakeld, nemen API-functies die ara::com::ComException creëren en werpen conform [SWS_CORE_10304] niet deel aan de overbelastingsresolutie AUTOSAR_AP_SWS_CommunicationManagement §8.12.5 “Class: ComException”. In dat geval valt de foutafhandelende software terug op alternatieve retourmechanismen.
Constructortypeveiligheid: Aangezien de constructor als explicit is gedeclareerd, worden impliciete typeconversies bij de overdracht van de ara::core::ErrorCode verhinderd [SWS_CM_11328].
Hiërarchisch afvangen: Omdat ara::com::ComException erft van ara::core::Exception, kunnen aanroepers excepties hetzij specifiek als ara::com::ComException, hetzij algemeen via handlers voor de basisklasse afhandelen.
Deze handleiding is gebaseerd op de specificatie AUTOSAR Adaptive R25-11. Alle gegevens en verwijzingen steunen uitsluitend op de verstrekte specificatiefragmenten.
UML-klassendiagram
Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.
gemini-3.8-flash-low· 2026-10-13 · Duits origineel