Define o domínio de erro para erros de verificação da proteção ponta a ponta na comunicação Adaptive.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: bfe73c7b7e47ProcedênciaPerguntas em aberto (2)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
Define o domínio de erro para erros de verificação da proteção ponta a ponta na comunicação Adaptive.
A classe ara::com::e2e::ComE2EErrorDomain define o domínio de erro para erros da proteção ponta a ponta no gerenciamento de comunicação do AUTOSAR Adaptive e associa códigos de erro à enumeração ComE2EErrc ([SWS_CM_12504]). Se uma verificação de E2E no lado do servidor falhar, um ara::core::ErrorCode desse domínio é transportado na resposta de erro e disponibilizado no lado do cliente via ara::core::Result ([SWS_CM_00033]). A classe sem estado e segura contra exceções permite o tratamento de erros opcionalmente baseado em valor ou via ThrowAsException(), sendo que este método de exceção não está disponível quando as exceções do compilador C++ estão desativadas ([SWS_CM_12509]).
Contexto
A classe ara::com::e2e::ComE2EErrorDomain define o domínio de erro para a proteção ponta a ponta (E2E) dentro do gerenciamento de comunicação (ara::com) da AUTOSAR Adaptive Platform. Ela deriva de forma final da classe base ara::core::ErrorDomain e encapsula erros específicos de domínio que ocorrem durante a validação E2E de mensagens.
No modelo de comunicação, ComE2EErrorDomain atua como identificador e tradutor central para estados de erro em interações protegidas por E2E. Por meio dos aliases de tipo Errc ([SWS_CM_12504]) e Exception ([SWS_CM_12505]), o domínio de erro vincula a enumeração específica de tipo ComE2EErrc e o tipo de exceção derivado ComE2EException ao ecossistema específico de erros de ara::core. Se o ambiente de tempo de execução do servidor detectar uma proteção defeituosa ao verificar uma solicitação de método por meio de E2E_check ([SWS_CM_90421]), uma resposta de erro de E2E é transmitida. De acordo com [SWS_CM_00033], a carga útil dessa mensagem de resposta transporta um ara::core::ErrorCode do domínio ara::com::e2e::ComE2EErrorDomain, cujo valor de erro corresponde ao resultado de E2E_check (AUTOSAR_AP_SWS_CommunicationManagement §7.4.1.2.4 «Payload of the E2E Error Response»). No lado do cliente, esse erro é desserializado após a remoção do cabeçalho E2E ([SWS_CM_90475]) ([SWS_CM_90476], [SWS_CM_10473]) e passado à aplicação como um estado de erro dentro de um ara::core::Result (AUTOSAR_AP_SWS_CommunicationManagement §7.4.1.2.5 «Deserializing the payload»).
A criação de um objeto de instância ocorre por meio do construtor padrão constexpr ComE2EErrorDomain() noexcept ([SWS_CM_12506]). Devido à marcação como constexpr, o domínio de erro já pode ser construído em tempo de compilação. Ele deve ser disponibilizado tipicamente como um singleton imutável em todo o processo, de modo que referências ao domínio permaneçam válidas durante todo o tempo de execução do programa. Como a classe é declarada como final, não são permitidas outras derivações. Pergunta Q-bd1ba0230650e246 (aberta)
A classe não gerencia estado mutável e oferece total segurança contra exceções ([SWS_CM_12506]). Os métodos de inspeção Name() ([SWS_CM_12507]) e Message() ([SWS_CM_12508]) são declarados como const e noexcept. Com isso, o acesso de leitura concorrente em múltiplos fluxos de execução é garantido como thread-safe e livre de sobrecargas de sincronização.
Caminho de utilização
O caminho de utilização típico realiza-se no âmbito da transmissão e da avaliação no lado do cliente de verificações de E2E com falha:
Verificação e geração de erros: ao receber uma solicitação protegida por E2E, o servidor executa a validação por meio de E2E_check ([SWS_CM_90421]). Se essa verificação falhar, o middleware serializa uma resposta de erro cuja carga útil contém um ara::core::ErrorCode com ara::com::e2e::ComE2EErrorDomain ([SWS_CM_00033]).
Diagnóstico de erros: A Adaptive Application verifica o ara::core::Result. Para o registro de erros, Name() fornece o identificador do domínio ([SWS_CM_12507]), enquanto Message() retorna o texto legível por humanos para o código numérico concreto ([SWS_CM_12508]).
Tratamento de erros: A aplicação pode avaliar o erro com base no valor ou, com o tratamento de exceções ativado, disparar uma exceção específica do tipo por meio de ThrowAsException() ([SWS_CM_12509]).
Se ocorrer um erro E2E durante a validação, este é identificado por meio da enumeração ComE2EErrc, que está disponível através do alias de tipo Errc da classe ([SWS_CM_12504]). Os códigos de erro em ComE2EErrc devem corresponder diretamente aos valores de resultado definidos de E2E_check. Pergunta Q-07fc2c01567ac537 (aberta)
Para propagar o erro por meio de exceções C++, o método ThrowAsException() instancia uma exceção do tipo ara::com::e2e::ComE2EException (alias Exception, [SWS_CM_12505]) e a lança ([SWS_CM_12509]). O método está declarado como noexcept(false). Se as exceções C++ estiverem desativadas na toolchain do compilador, ThrowAsException() não participa da resolução de sobrecarga, de acordo com [SWS_CM_12509]. Em sistemas sem suporte a exceções, o tratamento de erros deve, consequentemente, ser realizado de forma mandatória por meio da inspeção baseada em valor de ara::core::Result e ara::core::ErrorCode.
Este guia baseia-se na especificação AUTOSAR Adaptive R25-11 e foi criado automaticamente.
Creates a new instance of ara::com::e2e::ComE2EException 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.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: e33607e23f70ProcedênciaPerguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
A função-membro Name da classe ara::com::e2e::ComE2EErrorDomain ([SWS_CM_12507]) é chamada de forma síncrona e sem parâmetros de passagem. Serve para a identificação unívoca do domínio de erros e retorna um ponteiro para uma constante de cadeia de caracteres estática (const char *), que representa o nome do domínio de erros de comunicação E2E ([SWS_CM_12507]). A declaração da interface é disponibilizada através do ficheiro de cabeçalho ara/com/e2e/e2e_error_domain.h ([SWS_CM_12507]).
No que diz respeito ao tratamento de erros, a função é especificada como noexcept e exception safe ([SWS_CM_12507]). Por conseguinte, não lança exceções e não falha em tempo de execução; não estão previstos códigos de erro específicos ou mecanismos de tratamento de erros para esta chamada.
Relativamente à concorrência e às condições de contorno, não existem restrições especiais de chamada ou de ciclo de vida. Dado que o método apenas lê uma cadeia de caracteres imutável, a implementação deverá ser totalmente reentrante e segura para chamadas concorrentes a partir de quaisquer threads. Pergunta Q-c8158d40c80ce9c5 (aberta)
Creates a new instance of ara::com::e2e::ComE2EException 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.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: d2262a26cd80ProcedênciaPerguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
A função-membro ThrowAsException do domínio de erros ara::com::e2e::ComE2EErrorDomain serve, de acordo com [SWS_CM_12509], para encapsular um código de erro errorCode fornecido, do tipo ara::core::ErrorCode, numa exceção C++ tipificada do tipo ara::com::e2e::ComE2EException e desencadeá-la de forma síncrona. A função não possui valor de retorno (void) e é disponibilizada através do cabeçalho ara/com/e2e/e2e_error_domain.h (AUTOSAR_AP_SWS_CommunicationManagement §8.15.3.2.2.3 «ThrowAsException»).
Tratamento de erros e condições de contorno
O método é declarado com noexcept(false) e explicitamente especificado como não seguro contra exceções ("not exception safe"), uma vez que o seu fluxo regular consiste no lançamento da exceção. Uma restrição essencial do lado do compilador é definida por [SWS_CORE_10304]: caso as exceções C++ estejam desativadas na toolchain do compilador, esta função não participa na resolução de sobrecargas. Os chamadores têm, por conseguinte, de assegurar que o tratamento de erros baseado em exceções é suportado e está ativo no sistema-alvo.
gemini-3.8-flash-low· 2026-10-13 · Original em alemão