Serve para notificar e encapsular erros da sincronização de tempo na forma de uma exceção com o código de erro associado.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 02ba32fb22ccProcedênciaPerguntas em aberto (2)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
Serve para notificar e encapsular erros da sincronização de tempo na forma de uma exceção com o código de erro associado.
A classe de exceção ara::tsync::TsyncException serve para o encapsulamento e o encaminhamento de erros que ocorrem durante a sincronização de tempo dentro da Adaptive Platform. Ela deriva de ara::core::Exception e recebe obrigatoriamente em sua construção um ara::core::ErrorCode específico, que descreve a causa do erro [SWS_TS_00903]. O construtor é declarado como noexcept, garantindo que a instanciação da exceção ocorra de maneira segura contra exceções e thread-safe [SWS_TS_00903]. As aplicações provavelmente capturam a exceção em seus caminhos de tratamento de erros para avaliar seletivamente o código de erro contido. Pergunta (aberta)
Contexto
A classe ara::tsync::TsyncException representa a classe de exceção dedicada para a área funcional Time Synchronization (tsync) dentro da AUTOSAR Adaptive Platform. De acordo com a especificação, ela é declarada no cabeçalho ara/tsync/tsync_error_domain.h e serve como tipo central para mapear exceções lançadas pela sincronização de tempo [SWS_TS_00903]. Por meio da derivação pública da classe base ara::core::Exception, ela se integra perfeitamente à arquitetura de tratamento de erros de toda a plataforma.
Na arquitetura do sistema, ara::tsync::TsyncException assume o papel de portador de informações entre os componentes de implementação do serviço de sincronização de tempo e os módulos de aplicação. Se ocorrer um erro grave no âmbito da sincronização, ele não é descartado isoladamente, mas sim reportado na forma de uma exceção padronizada. A classe trabalha em estreita colaboração com ara::core::ErrorCode, que codifica e encapsula a causa concreta do erro [SWS_TS_00903].
Diagrama de contexto: Enquadramento de ara::tsync::TsyncException na interação com Time Synchronization, ara::core::ErrorCode e ara::core::Exception. Fontes: [SWS_TS_00903]
Ciclo de vida
O ciclo de vida de uma instância de ara::tsync::TsyncException começa com sua instanciação explícita. A especificação prevê para isso um construtor que aceita exatamente um código de erro do tipo ara::core::ErrorCode: explicit TsyncException(ara::core::ErrorCode errorCode) noexcept[SWS_TS_00903]. A declaração como explicit impede que códigos de erro sejam convertidos de forma implícita e não intencional em objetos de exceção.
Para a criação do objeto, o AUTOSAR formula garantias estritas: a construção é expressamente especificada como segura contra exceções (exception safe) e thread-safe (thread-safe) [SWS_TS_00903]. A palavra-chave noexcept garante que o próprio construtor não lance nenhuma outra exceção sob nenhuma condição [SWS_TS_00903]. Isso é essencial, pois a criação da exceção ocorre tipicamente no caminho de tratamento de erros, e uma falha nesse ponto levaria a um estado descontrolado do sistema.
Após a criação, o objeto está sujeito à semântica usual de exceções do C++: ele é transportado ao longo da pilha de chamadas até ser capturado por um manipulador correspondente. Com a saída do bloco catch, o tempo de vida da instância de exceção termina e os recursos são liberados de maneira determinística.
Caminho de utilização
O fluxo típico no uso de ara::tsync::TsyncException divide-se em identificação do erro, criação do objeto e captura no lado da aplicação:
Identificação do erro: A Time Synchronization detecta em tempo de execução um desvio ou uma condição de erro e gera um ara::core::ErrorCode correspondente [SWS_TS_00903].
Criação e lançamento da exceção: Utilizando o construtor, um objeto ara::tsync::TsyncException é instanciado com o código de erro determinado e lançado [SWS_TS_00903].
Captura do erro: O componente chamador captura a exceção em um bloco estruturado de tratamento de exceções.
Os desenvolvedores provavelmente tratam a exceção em suas aplicações opcionalmente de forma específica como const ara::tsync::TsyncException& ou a capturam polimorficamente por meio da classe base const ara::core::Exception&[SWS_TS_00903]. Pergunta Q-0c8129359ef114e8 (aberta) Para acessar a definição do tipo, é necessária a inclusão do cabeçalho ara/tsync/tsync_error_domain.h[SWS_TS_00903].
Cenários de erro
Como classe de exceção, ara::tsync::TsyncException serve para a representação explícita de cenários de erro. O componente central aqui é o ara::core::ErrorCode encapsulado, que fornece informações detalhadas sobre o motivo específico do erro dentro do domínio de erro [SWS_TS_00903].
Uma característica essencial é a ausência de um construtor padrão sem parâmetros. Isso garante que nenhuma instância de exceção possa existir sem um código de erro associado [SWS_TS_00903]. A garantia noexcept do construtor assegura ainda que o encapsulamento e a sinalização do erro não sejam sobrepostos por falhas de exceção secundárias [SWS_TS_00903].
Este guia foi gerado por uma IA com base na especificação AUTOSAR 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