Sirve como tipo de excepción para errores en operaciones asíncronas con Future y Promise y encapsula un código de error.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 4af39887de1dProcedenciaPreguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
Sirve como tipo de excepción para errores en operaciones asíncronas con Future y Promise y encapsula un código de error.
La clase ara::core::FutureException sirve como un tipo de excepción específico que se lanza en caso de errores en relación con ara::core::Future y ara::core::Promise[SWS_CORE_00412]. Encapsula un ara::core::ErrorCode y se crea a través de un constructor explícito [SWS_CORE_00412]. Para su uso seguro en entornos asíncronos y concurrentes, la instanciación está especificada como noexcept, segura para subprocesos y segura frente a excepciones [SWS_CORE_00412].
Contexto
La clase ara::core::FutureException actúa dentro del módulo core como tipo de excepción dedicado para primitivas de comunicación y sincronización asíncronas. Conforme a su finalidad, este tipo de excepción es desencadenado por ara::core::Future así como por ara::core::Promise para señalizar al invocador estados de error en el contexto de operaciones asíncronas. Estructuralmente, ara::core::FutureException deriva de la clase base Exception y encapsula un código de error específico del dominio.
En escenarios colaborativos, ara::core::FutureException constituye el puente entre el punto final asíncrono generador (como ara::core::Promise), el punto final consumidor (ara::core::Future) y el tratamiento de errores por parte de la aplicación. La interacción de estos tres participantes ilustra el marco estructural en el que se transfiere la excepción para el tratamiento de errores.
Diagrama de contexto: integración de ara::core::FutureException entre Promise, Future y el subproceso de la aplicación. Fuentes: [SWS_CORE_00412]
Ciclo de vida
La instanciación de ara::core::FutureException se realiza explícitamente mediante el constructor pasando un código de error del tipo ara::core::ErrorCode[SWS_CORE_00412]. Mediante la declaración con explicit se evita una conversión implícita de tipo a partir de un ara::core::ErrorCode. El constructor está designado como noexcept, lo que garantiza que la propia construcción no pueda desencadenar excepciones adicionales [SWS_CORE_00412].
En cuanto a la seguridad de ejecución, la clase está especificada como segura frente a excepciones (exception safe) [SWS_CORE_00412]. Para el funcionamiento concurrente, la especificación clasifica además explícitamente la construcción como segura para subprocesos (thread-safe) [SWS_CORE_00412]. Esto permite que las operaciones asíncronas instancien la excepción de manera segura a través de los límites entre subprocesos y la transmitan a los receptores en espera.
Ruta de uso
El flujo de uso típico abarca desde el surgimiento de un error durante una operación asíncrona hasta la captura de la excepción por parte del invocador consumidor. La provisión se realiza típicamente a través del encabezado ara/core/future_error_domain.h[SWS_CORE_00412].
Diagrama de secuencia: flujo desde el origen del error, pasando por la instanciación de ara::core::FutureException, hasta la captura. Fuentes: [SWS_CORE_00412]
El flujo de uso se divide en los siguientes pasos:
Detección de un fallo o de un estado no permitido durante el procesamiento asíncrono en relación con ara::core::Promise o ara::core::Future.
Creación de ara::core::FutureException mediante el constructor indicando el ara::core::ErrorCode específico [SWS_CORE_00412].
Transmisión de la excepción al subproceso consumidor, donde se captura en el marco de un bloque try-catch y se analiza el error contenido.
Escenarios de error
Dado que ara::core::FutureException representa en sí misma el vehículo para la señalización de errores, los escenarios de fallo se limitan a las condiciones de su propia creación. Mediante la designación del constructor con noexcept, queda garantizado que durante la creación del objeto no pueda producirse ningún error de ejecución en forma de excepción secundaria [SWS_CORE_00412]. Como condición previa para la construcción se requiere pasar como parámetro un objeto válido del tipo ara::core::ErrorCodeerr[SWS_CORE_00412]. Si se produce un error al trabajar con ara::core::Future o ara::core::Promise, la excepción sirve para transportar dicho código de error sin alteraciones a las llamadas de nivel superior.
Esta guía se basa en AUTOSAR Adaptive Platform R25-11.
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