DEENESPTFRRUARHIKOZHNL

classe 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

Guide utilisateurGÉNÉRÉ PAR IA

Sert de classe d'exception d'API pour encapsuler et signaler les erreurs de gestion de communication via des codes d'erreur.
GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : becb2133e102 Provenance Questions ouvertes (2)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

Sert de classe d'exception d'API pour encapsuler et signaler les erreurs de gestion de communication via des codes d'erreur.

Dans AUTOSAR Adaptive, la classe ara::com::ComException sert de classe d'exception centrale pour signaler les erreurs lors des appels à l'API de communication [SWS_CM_11327]. Elle encapsule un ara::core::ErrorCode et est instanciée et levée lors d'opérations ayant échoué, son constructeur étant défini comme sûr vis-à-vis des exceptions et ne levant pas d'exception [SWS_CM_11328]. Si les exceptions C++ sont désactivées dans la chaîne d'outils du compilateur, les surcharges d'API levantes correspondantes sont entièrement exclues de la résolution de surcharge. Les appelants interceptent l'objet exception afin d'analyser le code d'erreur contenu et d'engager des mesures de traitement d'erreur.

Contexte

Dans le module com de l'AUTOSAR Adaptive Platform, la classe ara::com::ComException sert de classe d'exception spécialisée pour signaler les erreurs lors des appels à l'API de communication [SWS_CM_11327]. Elle dérive publiquement de la classe de base ara::core::Exception et est déclarée comme final. Cela illustre son intégration directe dans l'architecture globale de traitement des erreurs de l'Adaptive Platform. Étant marquée comme final, la classe est probablement conçue comme un type d'exception scellé qui n'est pas destiné à une hiérarchie de dérivation supplémentaire. Question Q-2454b5b73295287b (ouverte)

Le rôle principal de ara::com::ComException consiste à encapsuler un état d'erreur survenu sous la forme d'un ara::core::ErrorCode et à le transmettre aux couches appelantes via le mécanisme d'exception C++ [SWS_CM_11328]. La déclaration et la définition sont fournies via l'en-tête #include "ara/com/com_error_domain.h" [SWS_CM_11328]. Le logiciel d'application utilisateur, les fonctions internes de service et d'API de la gestion de communication ainsi que les types du domaine d'erreur ara::core::ErrorCode agissent ici en tant que partenaires d'interaction centraux.

Cycle de vie

Le cycle de vie d'un objet ara::com::ComException commence dans l'implémentation d'une fonction d'API de la gestion de communication dès qu'une opération échoue et que l'exception est instanciée et déclenchée AUTOSAR_AP_SWS_CommunicationManagement §8.12.5 « Class: ComException ». La création s'effectue via le constructeur explicite, qui prend en charge l'objet ara::core::ErrorCode déclencheur [SWS_CM_11328].

Ce constructeur est déclaré avec noexcept et possède la propriété exception safe [SWS_CM_11328]. Cela garantit qu'aucune autre exception ne peut survenir pendant la construction de l'objet exception lui-même. Après avoir été levé par throw, l'objet est transporté dans le cadre du déroulement de pile (stack unwinding) jusqu'à ce qu'il soit lié dans un bloc catch approprié de la couche appelante. En ce qui concerne les relations de propriété, l'instance est automatiquement détruite sur la pile après la sortie du bloc traitant. La classe ne présente pas de transitions d'état internes au sens d'une machine à états ; son état reste immuable après l'initialisation avec le code d'erreur.

Parcours d'utilisation

Le chemin d'utilisation typique décrit le déroulement de la détection de l'erreur, du déclenchement de l'exception et de son traitement ultérieur :

  1. Une fonction d'application appelle une opération de l'interface ara::com.
  2. Si une erreur survient pendant le traitement, l'implémentation de l'API crée une nouvelle instance de ara::com::ComException à partir du errorCode associé et la lève AUTOSAR_AP_SWS_CommunicationManagement §8.12.5 « Class: ComException ».
  3. L'application intercepte l'exception dans un bloc adapté. Côté application, l'interception s'effectue probablement par référence constante (const ara::com::ComException&) afin d'éviter les opérations de copie. Question Q-5270e026eeac8be7 (ouverte)
  4. Via l'interface de la classe de base, l'appelant accède au ara::core::ErrorCode contenu et exécute des étapes de diagnostic ou de compensation [SWS_CM_11328].
Déroulement de la gestion des exceptions avec ComExceptionApplicationara::com-LaufzeitComExceptionExécuter l'appel d'API()Kommunikationsfehler erkanntComException(errorCode) instanziierenthrow ComExceptioncatch (const ara::com::ComException&) et évaluer le code d'erreur

Diagramme de séquence : déroulement de la détection d'erreur, de l'instanciation et du traitement d'ara::com::ComException. Sources : [SWS_CM_11327], [SWS_CM_11328], AUTOSAR_AP_SWS_CommunicationManagement §8.12.5 « Class: ComException »

Scénarios d'erreur

Dans le contexte du traitement des erreurs et de la configuration de la chaîne d'outils, les conditions et cas limites suivants s'appliquent :

  • Exceptions C++ désactivées : si les exceptions C++ sont désactivées dans la chaîne d'outils du compilateur, les fonctions d'API créant et levant ara::com::ComException ne participent pas à la résolution de surcharge selon [SWS_CORE_10304] AUTOSAR_AP_SWS_CommunicationManagement §8.12.5 « Class: ComException ». Dans ce cas, le logiciel gérant les erreurs recourt à des mécanismes de retour alternatifs.
  • Sécurité de typage du constructeur : le constructeur étant déclaré comme explicit, les conversions de type implicites lors de la transmission du ara::core::ErrorCode sont empêchées [SWS_CM_11328].
  • Interception hiérarchique : comme ara::com::ComException hérite de ara::core::Exception, les appelants peuvent traiter les exceptions soit spécifiquement en tant que ara::com::ComException, soit de manière générale via des gestionnaires pour la classe de base.

Ce guide est basé sur la spécification AUTOSAR Adaptive R25-11. Toutes les indications et références reposent exclusivement sur les extraits de spécification fournis.

Diagramme de classes UML

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

Constructeurs et destructeur

ComException fonction

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

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

Documentation des méthodes

fonction 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#7c63272b
Content hash
7c63272b
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