Serve como tipo de exceção para erros em operações assíncronas com Future e Promise e encapsula um código de erro.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 4af39887de1dProcedênciaPerguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
Serve como tipo de exceção para erros em operações assíncronas com Future e Promise e encapsula um código de erro.
A classe ara::core::FutureException serve como um tipo de exceção específico lançado em caso de erros associados a ara::core::Future e ara::core::Promise[SWS_CORE_00412]. Ela encapsula um ara::core::ErrorCode e é criada por meio de um construtor explícito [SWS_CORE_00412]. Para a utilização segura em ambientes assíncronos e concorrentes, a instanciação é especificada como noexcept, thread-safe e segura contra exceções [SWS_CORE_00412].
Contexto
A classe ara::core::FutureException atua no módulo core como um tipo de exceção dedicado para primitivas de comunicação e sincronização assíncronas. De acordo com a sua finalidade, este tipo de exceção é disparado por ara::core::Future, bem como por ara::core::Promise, a fim de sinalizar ao chamador estados de erro no contexto de operações assíncronas. Estruturalmente, ara::core::FutureException deriva da classe base Exception e encapsula um código de erro específico de domínio.
Em cenários colaborativos, ara::core::FutureException estabelece a ponte entre o endpoint assíncrono gerador (como ara::core::Promise), o endpoint consumidor (ara::core::Future) e o tratamento de erros da aplicação. A interação entre essas três partes envolvidas evidencia a estrutura em que a exceção é passada para o tratamento de erros.
Diagrama de contexto: Incorporação de ara::core::FutureException entre Promise, Future e a thread da aplicação. Fontes: [SWS_CORE_00412]
Ciclo de vida
A instanciação de ara::core::FutureException ocorre explicitamente por meio do construtor mediante a passagem de um código de erro do tipo ara::core::ErrorCode[SWS_CORE_00412]. Através da declaração com explicit, impede-se uma conversão implícita de tipo a partir de um ara::core::ErrorCode. O construtor é designado como noexcept, o que garante que a própria construção não possa disparar exceções adicionais [SWS_CORE_00412].
Em termos de segurança de execução, a classe é especificada como segura contra exceções (exception safe) [SWS_CORE_00412]. Para a operação concorrente, a especificação também designa explicitamente a construção como segura para threads (thread-safe) [SWS_CORE_00412]. Isso permite que operações assíncronas instanciem a exceção com segurança através de fronteiras de threads e a repassem aos destinatários em espera.
Caminho de utilização
O fluxo de utilização típico engloba desde a ocorrência de um erro durante uma operação assíncrona até a captura da exceção pelo chamador consumidor. A disponibilização ocorre tipicamente por meio do cabeçalho ara/core/future_error_domain.h[SWS_CORE_00412].
Diagrama de sequência: Fluxo desde a ocorrência do erro e a instanciação de ara::core::FutureException até a captura. Fontes: [SWS_CORE_00412]
O fluxo de utilização subdivide-se nas seguintes etapas:
Detecção de uma falha ou de um estado inválido no processamento assíncrono em conjunto com ara::core::Promise ou ara::core::Future.
Criação de ara::core::FutureException por meio do construtor, com indicação do ara::core::ErrorCode específico [SWS_CORE_00412].
Transmissão da exceção para a thread consumidora, onde ela é capturada no âmbito de um bloco try-catch e o erro contido é analisado.
Cenários de erro
Como a própria ara::core::FutureException representa o veículo para a sinalização de erros, os cenários de falha restringem-se às condições da sua própria criação. Devido à qualificação do construtor com noexcept, garante-se que nenhum erro de execução sob a forma de exceção secundária possa ocorrer durante a criação do objeto [SWS_CORE_00412]. Como pré-condição para a construção, aplica-se a passagem de um objeto válido do tipo ara::core::ErrorCode como parâmetro err[SWS_CORE_00412]. Caso ocorra um erro durante o trabalho com ara::core::Future ou ara::core::Promise, a exceção serve ao propósito de transportar esse código de erro de forma inalterada para chamadas de nível superior.
Este guia baseia-se na AUTOSAR Adaptive Platform R25-11.
Diagrama de classes UML
Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.
gemini-3.8-flash-low· 2026-10-13 · Original em alemão