Encapsula e identifica errores de comunicación generales del middleware para un tratamiento estandarizado de errores.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 13073fe45989ProcedenciaPreguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
Encapsula e identifica errores de comunicación generales del middleware para un tratamiento estandarizado de errores.
La clase ara::com::ComErrorDomain representa el dominio de errores de comunicación para la identificación de errores generales no específicos de la interfaz en la API ara::com ([SWS_CM_11265]). Proporciona descripciones de error para códigos de error tales como ComErrc::kCommunicationFailure y permite su consulta a través de Message() o su conversión en una excepción mediante ThrowAsException() ([SWS_CM_11332]). Dado que su constructor por defecto está eliminado, actúa como una instancia de dominio sin estado y segura para subprocesos (thread-safe) para el ara::core::Result portador del error.
Contexto
La clase ara::com::ComErrorDomain representa el dominio estandarizado de errores de comunicación de la Adaptive Platform para el clúster funcional Communication Management (SWS CommunicationManagement p. 439). Deriva de la clase base ara::core::ErrorDomain y define el contexto semántico para errores generales que pueden producirse durante llamadas a métodos o transmisiones de datos, pero que no son específicos de una ServiceInterface individual ([SWS_CM_11265]). En la arquitectura de errores de ara::com, delimita sistemáticamente los fallos generales de comunicación respecto de los errores de supervisión de E2E y de los errores de servicio específicos de la aplicación (SWS CommunicationManagement §7.5.22.6 «Error Related Data Types»).
Entre sus interlocutores centrales figuran la Adaptive Application, las implementaciones de servicio y proxy del middleware, así como los tipos de datos ara::core::ErrorCode y ara::core::Result del sistema base (EXP ARAComAPI §4.7 «Error Handling»). Para la vinculación semántica de tipos, la clase proporciona los alias de tipo Errc para la enumeración de códigos de error ComErrc ([SWS_CM_11336]), así como Exception para la clase de excepción asociada ComException ([SWS_CM_11337]).
Como clase de especificación para un dominio de error, la creación de ara::com::ComErrorDomain queda impedida mediante la eliminación del constructor por defecto ComErrorDomain() = delete; ([SWS_CM_11330]). Interpretación: La provisión de la instancia de dominio debería realizarse como singleton estático a través de la plataforma, de modo que los componentes de la aplicación no tengan que instanciar ni gestionar el dominio dinámicamente. Pregunta Q-bf957a108c0a5378 (abierta)
La instancia actúa como descriptor sin estado y sin atributos modificables. Todos los métodos proporcionados, como Name() ([SWS_CM_11331]) y Message() ([SWS_CM_11332]), están declarados como const noexcept. Esto garantiza una seguridad de subprocesos sin restricciones durante las consultas de error concurrentes procedentes de subprocesos paralelos de la aplicación y del middleware.
Ruta de uso
La ruta de uso típica comprende la detección, transmisión y evaluación de un error a través de las interfaces de ara::com:
La aplicación inicia una interacción de servicio, por ejemplo mediante el operador de llamada de la clase de método operator() ([SWS_CM_00196]).
Si el middleware detecta un caso de error durante el procesamiento, como por ejemplo un fallo de comunicación o un error de aplicación no configurado ([SWS_CM_00048]), se invoca la operación SetError en el Promise correspondiente (SWS CommunicationManagement p. 300).
En este proceso se construye un ara::core::ErrorCode cuyo dominio se establece en ara::com::ComErrorDomain ([SWS_CM_11329]) y cuyo código numérico se fija en un valor de enumeración específico como ComErrc::kCommunicationFailure ([SWS_CM_10432]).
El ara::core::Future o ara::core::Result devuelto a la aplicación transporta el código de error en estado de error al invocador (EXP ARAComAPI §4.7 «Error Handling»).
La aplicación comprueba el Result y utiliza las funciones de dominio Name() ([SWS_CM_11331]) y Message() ([SWS_CM_11332]) para resolver los mensajes de error destinados al registro o al diagnóstico.
En caso de que la lógica de la aplicación espere una excepción y las excepciones de C++ estén habilitadas, puede desencadenarse la conversión en una ComException mediante ThrowAsException() ([SWS_CM_11333]).
El concepto de error de ara::com distingue estrictamente entre errores recuperables (Recoverable Errors) e infracciones graves de programación (Violations o Corruptions) (EXP ARAComAPI §4.7 «Error Handling»). Los errores recuperables se gestionan a través de ara::core::Result y ara::core::ErrorCode, donde los códigos de error del dominio ComErrorDomain se direccionan mediante el alias de identificador Errc ([SWS_CM_11336]).
Si, por ejemplo, se produce una interrupción de la transmisión durante una llamada remota, el sistema notifica ComErrc::kCommunicationFailure ([SWS_CM_10432]). En caso de un error de aplicación no configurado, el middleware cancela la llamada y establece asimismo el código de error correspondiente del dominio ([SWS_CM_00048], SWS CommunicationManagement p. 300).
Si debe lanzarse un código de error como excepción, ThrowAsException() instancia una excepción del tipo ComException ([SWS_CM_11337]) y la lanza ([SWS_CM_11333]). Este método no es seguro frente a excepciones (not exception safe) y, según la especificación, no participa en la resolución de sobrecargas cuando las excepciones de C++ están deshabilitadas ([SWS_CM_11333]). Por el contrario, las violaciones no recuperables del sistema provocan directamente la interrupción de la plataforma y no se tratan mediante ComErrorDomain (EXP ARAComAPI §4.7 «Error Handling»).
Esta guía ha sido elaborada por una IA sobre la base de las especificaciones AUTOSAR R25-11.
Creates a new instance of ara::com::ComException from errorCode and throws it. As per [SWS_CORE_10304], this function does not participate in overload resolution when C++ exceptions are disabled in the compiler toolchain.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 4c51965f3a93ProcedenciaPreguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
usar
La función miembro Name() de la clase ara::com::ComErrorDomain sirve para la obtención estandarizada de la designación textual de este dominio de error ([SWS_CM_11331]). La llamada se realiza de forma síncrona, no requiere parámetros de entrada y devuelve un puntero constante de tipo const char * a la cadena de caracteres asociada ([SWS_CM_11331]). La representación exacta de la cadena de caracteres devuelta se rige por las especificaciones para ara::com::ComErrorDomain en [SWS_CORE_90023]. La declaración debe incluirse mediante el encabezado ara/com/com_error_domain.h ([SWS_CM_11331]).
Tratamiento de errores y concurrencia
El método cuenta con la especificación noexcept y está clasificado como seguro frente a excepciones (exception safe) ([SWS_CM_11331]). En caso de error no se lanzan excepciones ni se notifican códigos de error específicos, ya que se trata de una operación puramente de lectura. Dado que solo se direcciona una constante de cadena de caracteres inmutable, el método probablemente sea reentrante y admita llamadas concurrentes desde múltiples hilos de ejecución de forma segura sin sincronización externa. Pregunta Q-a9f6ae55558ebb1f (abierta)
Interacción
La función forma parte de los identificadores estandarizados de dominios de error dentro de la gestión de comunicación (AUTOSAR_AP_SWS_CommunicationManagement §1 «Change History»). El esquema de nombres e interfaces está implementado de forma consistente en todos los dominios relacionados: de este modo, también el dominio de error de extremo a extremo ara::com::e2e::ComE2EErrorDomain a través de [SWS_CM_12507], así como el dominio de error SecOC-FVM apext::com::secoc::ComSecOcFvmErrorDomain a través de [SWS_CM_12518], definen métodos Name() análogos para la identificación.
Este texto ha sido generado por una IA a partir de la especificación de AUTOSAR.
Creates a new instance of ara::com::ComException from errorCode and throws it. As per [SWS_CORE_10304], this function does not participate in overload resolution when C++ exceptions are disabled in the compiler toolchain.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: bc30613084e7ProcedenciaPreguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
usar
La función miembro ThrowAsException del dominio de error ara::com::ComErrorDomain ([SWS_CM_11333]; SWS CommunicationManagement §8.12.4.2.2.3 «ThrowAsException») genera de forma síncrona, a partir de un código de error errorCode transferido (de tipo const ara::core::ErrorCode&), una instancia de la excepción ara::com::ComException y la lanza de inmediato. La interfaz no posee valor de retorno (void) y se declara a través del archivo de cabecera ara/com/com_error_domain.h.
Tratamiento de errores y seguridad frente a excepciones
La firma está declarada con noexcept(false) y especificada como no segura frente a excepciones (not exception safe) ([SWS_CM_11333]), ya que el desencadenamiento de la excepción es el propósito primordial de la función. No se han definido notificaciones específicas de DET ni de DEM para esta llamada.
Condiciones límite y restricciones
Como condición límite central se aplica: si las excepciones de C++ están desactivadas en la cadena de herramientas del compilador, la función no participa en la resolución de sobrecargas conforme a [SWS_CORE_10304] ([SWS_CM_11333]). Interpretación: en arquitecturas de software con el tratamiento de excepciones desactivado, es probable que la función no pueda llamarse en tiempo de compilación. Pregunta Q-437f825160e6801e (abierta)
gemini-3.8-flash-low· 2026-10-13 · Original en alemán