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 IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: becb2133e102ProcedenciaPreguntas 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:
Una función de aplicación invoca una operación de la interfaz ara::com.
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)
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].
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.
gemini-3.8-flash-low· 2026-10-13 · Original en alemán