DEENESPTFRRUARHIKOZHNL

clase 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

Guía del usuarioGENERADO POR IA

Sirve como clase de excepción de la API para encapsular y notificar errores de la gestión de comunicación mediante códigos de error.
GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: becb2133e102 Procedencia Preguntas abiertas (2)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

Sirve como clase de excepción de la API para encapsular y notificar errores de la gestión de comunicación mediante códigos de error.

La clase ara::com::ComException sirve en AUTOSAR Adaptive como clase de excepción central para señalar errores en llamadas a la API de comunicación [SWS_CM_11327]. Encapsula un ara::core::ErrorCode y se instancia y lanza en caso de operaciones fallidas, estando su constructor definido como seguro frente a excepciones y sin lanzamiento de excepciones [SWS_CM_11328]. Si las excepciones de C++ están desactivadas en la cadena de herramientas del compilador, las sobrecargas de la API que lanzan excepciones quedan completamente excluidas de la resolución de sobrecargas. Los invocadores capturan el objeto de excepción para analizar el código de error contenido e iniciar medidas de tratamiento de errores.

Contexto

La clase ara::com::ComException sirve en el módulo com de AUTOSAR Adaptive Platform como clase de excepción especializada para señalar errores en llamadas a la API de comunicación [SWS_CM_11327]. Deriva públicamente de la clase base ara::core::Exception y está declarada como final. Esto evidencia la integración directa en la arquitectura global de tratamiento de errores de Adaptive Platform. Al estar marcada como final, la clase parece haber sido concebida como un tipo de excepción sellado, no previsto para una jerarquía de derivación posterior. Pregunta Q-2454b5b73295287b (abierta)

La tarea principal de ara::com::ComException consiste en encapsular un estado de error ocurrido en forma de un ara::core::ErrorCode y transmitirlo a las capas invocadoras a través del mecanismo de excepciones de C++ [SWS_CM_11328]. La declaración y definición se proporcionan a través del encabezado #include "ara/com/com_error_domain.h" [SWS_CM_11328]. Como interlocutores centrales de interacción actúan el software de aplicación usuario, las funciones internas de servicio y de la API de la gestión de comunicación, así como los tipos del dominio de errores ara::core::ErrorCode.

Ciclo de vida

El ciclo de vida de un objeto ara::com::ComException comienza en la implementación de una función de la API de la gestión de comunicación tan pronto como una operación falla y la excepción se instancia y se lanza AUTOSAR_AP_SWS_CommunicationManagement §8.12.5 «Class: ComException». La creación se realiza a través del constructor explícito, el cual recibe el objeto ara::core::ErrorCode causante [SWS_CM_11328].

Este constructor está declarado con noexcept y posee la propiedad exception safe [SWS_CM_11328]. De este modo, se garantiza que durante la propia construcción del objeto de excepción no puedan producirse más excepciones. Tras el lanzamiento mediante throw, el objeto se transporta en el marco del desenrollado de la pila (stack unwinding) hasta quedar vinculado en un bloque catch adecuado de la capa invocadora. Respecto a la propiedad del objeto, la instancia se destruye automáticamente en la pila tras abandonar el bloque de tratamiento. La clase no presenta transiciones de estado internas en el sentido de una máquina de estados; su estado permanece invariable tras la inicialización con el código de error.

Ruta de uso

La ruta de uso típica describe el flujo de detección de errores, lanzamiento de la excepción y tratamiento posterior:

  1. Una función de aplicación invoca una operación de la interfaz ara::com.
  2. Si se produce un error durante el procesamiento, la implementación de la API crea una nueva instancia de ara::com::ComException a partir del errorCode asociado y la lanza AUTOSAR_AP_SWS_CommunicationManagement §8.12.5 «Class: ComException».
  3. La aplicación captura la excepción en un bloque adecuado. En el lado de la aplicación, la captura se realiza presumiblemente por referencia constante (const ara::com::ComException&) para evitar operaciones de copia. Pregunta Q-5270e026eeac8be7 (abierta)
  4. A través de la interfaz de la clase base, el invocador accede al ara::core::ErrorCode contenido y lleva a cabo pasos de diagnóstico o compensación [SWS_CM_11328].
Flujo del tratamiento de excepciones con ComExceptionAplicaciónara::com-LaufzeitComExceptionejecutar llamada a la API()Kommunikationsfehler erkanntComException(errorCode) instanziierenthrow ComExceptioncatch (const ara::com::ComException&) y evaluar el código de error

Diagrama de secuencia: flujo de detección de errores, instanciación y tratamiento de ara::com::ComException. Fuentes: [SWS_CM_11327], [SWS_CM_11328], AUTOSAR_AP_SWS_CommunicationManagement §8.12.5 «Class: ComException»

Escenarios de error

En el contexto del tratamiento de errores y la configuración de la cadena de herramientas, son de aplicación las siguientes condiciones y casos límite:

  • Excepciones de C++ desactivadas: si las excepciones de C++ están desactivadas en la cadena de herramientas del compilador, las funciones de la API que crean y lanzan ara::com::ComException no participan en la resolución de sobrecargas de acuerdo con [SWS_CORE_10304] AUTOSAR_AP_SWS_CommunicationManagement §8.12.5 «Class: ComException». En este caso, el software que gestiona el error recurre a mecanismos alternativos de retorno.
  • Seguridad de tipos del constructor: dado que el constructor está declarado como explicit, se impiden las conversiones implícitas de tipo al transferir el ara::core::ErrorCode [SWS_CM_11328].
  • Captura jerárquica: dado que ara::com::ComException hereda de ara::core::Exception, los invocadores pueden tratar las excepciones bien de manera específica como ara::com::ComException o bien de forma general mediante manejadores para la clase base.

Esta guía se basa en la especificación AUTOSAR Adaptive R25-11. Todas las indicaciones y referencias se fundamentan exclusivamente en los extractos de la especificación facilitados.

Diagrama de clases 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

Constructores y destructor

ComException función

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

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

Documentación de los métodos

función 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#78d0cce0
Content hash
78d0cce0
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