Encapsula e identifica erros gerais de comunicação do middleware para o tratamento padronizado de erros.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 13073fe45989ProcedênciaPerguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
Encapsula e identifica erros gerais de comunicação do middleware para o tratamento padronizado de erros.
A classe ara::com::ComErrorDomain representa o domínio de erros de comunicação para identificação de erros gerais e não específicos de interface na API ara::com ([SWS_CM_11265]). Ela fornece descrições de erros para códigos de erro como ComErrc::kCommunicationFailure e permite sua consulta via Message() ou a conversão em uma exceção por meio de ThrowAsException() ([SWS_CM_11332]). Como seu construtor padrão está excluído, ela atua como uma instância de domínio sem estado e thread-safe para o ara::core::Result portador do erro.
Contexto
A classe ara::com::ComErrorDomain representa o domínio padronizado de erros de comunicação da Adaptive Platform para o cluster funcional Communication Management (SWS CommunicationManagement p. 439). Ela deriva da classe base ara::core::ErrorDomain e define o contexto semântico para erros gerais que podem ocorrer durante chamadas de método ou transmissões de dados, mas que não são específicos de um ServiceInterface individual ([SWS_CM_11265]). Na arquitetura de erros de ara::com, ela delimita sistematicamente falhas gerais de comunicação contra erros de monitoramento de E2E e erros de serviço específicos da aplicação (SWS CommunicationManagement §7.5.22.6 «Error Related Data Types»).
Entre seus parceiros centrais de interação estão a Adaptive Application, as implementações de serviço e de proxy do middleware, bem como os tipos de dados ara::core::ErrorCode e ara::core::Result do sistema básico (EXP ARAComAPI §4.7 «Error Handling»). Para a vinculação semântica de tipos, a classe disponibiliza os aliases de tipo Errc para a enumeração de códigos de erro ComErrc ([SWS_CM_11336]) e Exception para a classe de exceção associada ComException ([SWS_CM_11337]).
Como classe de especificação para um domínio de erro, a criação de ara::com::ComErrorDomain é impedida pela exclusão do construtor padrão ComErrorDomain() = delete; ([SWS_CM_11330]). Interpretação: a disponibilização da instância de domínio deve ocorrer como singleton estático por meio da plataforma, de modo que os componentes da aplicação não precisam instanciar ou gerenciar o domínio dinamicamente. Pergunta Q-bf957a108c0a5378 (aberta)
A instância atua como um descritor sem estado, sem atributos mutáveis. Todos os métodos disponibilizados, como Name() ([SWS_CM_11331]) e Message() ([SWS_CM_11332]), são declarados como const noexcept. Isso assegura segurança irrestrita entre threads em consultas concorrentes de erro realizadas por threads paralelas da aplicação e do middleware.
Caminho de utilização
O caminho de utilização típico abrange a detecção, a transmissão e a avaliação de um erro por meio das interfaces de ara::com:
A aplicação inicia uma interação de serviço, por exemplo, por meio do operador de chamada da classe de método operator() ([SWS_CM_00196]).
Se o middleware detectar uma falha durante o processamento, como uma falha de comunicação ou um erro de aplicação não configurado ([SWS_CM_00048]), a operação SetError é chamada no Promise correspondente (SWS CommunicationManagement p. 300).
Nesse processo, é construído um ara::core::ErrorCode cujo domínio está definido como ara::com::ComErrorDomain ([SWS_CM_11329]) e cujo código numérico está definido como um valor de enumeração específico como ComErrc::kCommunicationFailure ([SWS_CM_10432]).
O ara::core::Future ou ara::core::Result retornado à aplicação transporta o código de erro no estado de erro para o chamador (EXP ARAComAPI §4.7 «Error Handling»).
A aplicação verifica o Result e utiliza as funções de domínio Name() ([SWS_CM_11331]) e Message() ([SWS_CM_11332]) para resolver mensagens de erro para fins de registro em log ou diagnóstico.
Se a lógica da aplicação esperar uma exceção e as exceções C++ estiverem ativadas, a conversão em uma ComException pode ser disparada por meio de ThrowAsException() ([SWS_CM_11333]).
O conceito de erros de ara::com distingue estritamente entre erros recuperáveis (Recoverable Errors) e violações graves de programação (Violations ou Corruptions) (EXP ARAComAPI §4.7 «Error Handling»). Erros recuperáveis são tratados por meio de ara::core::Result e ara::core::ErrorCode, sendo os códigos de erro do domínio ComErrorDomain endereçados por meio do alias de identificador Errc ([SWS_CM_11336]).
Se ocorrer, por exemplo, uma interrupção de transmissão durante uma chamada remota, o sistema reporta ComErrc::kCommunicationFailure ([SWS_CM_10432]). Em caso de erro de aplicação não configurado, o middleware aborta a chamada e também define um código de erro correspondente do domínio ([SWS_CM_00048], SWS CommunicationManagement p. 300).
Se um código de erro dever ser lançado como exceção, ThrowAsException() instancia uma exceção do tipo ComException ([SWS_CM_11337]) e a lança ([SWS_CM_11333]). Esse método não é seguro contra exceções (not exception safe) e, de acordo com a especificação, não participa da resolução de sobrecarga quando as exceções C++ estão desativadas ([SWS_CM_11333]). Violações de sistema não recuperáveis, por outro lado, levam diretamente à interrupção da plataforma e não são tratadas por meio de ComErrorDomain (EXP ARAComAPI §4.7 «Error Handling»).
Este guia foi elaborado por uma IA com base nas especificações 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.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 4c51965f3a93ProcedênciaPerguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
usar
A função-membro Name() da classe ara::com::ComErrorDomain destina-se à recuperação padronizada da designação textual deste domínio de erros ([SWS_CM_11331]). A chamada é efetuada de forma síncrona, não requer parâmetros de passagem e retorna um ponteiro constante do tipo const char * para a cadeia de carateres associada ([SWS_CM_11331]). A representação exata da cadeia de carateres retornada orienta-se pelas especificações para ara::com::ComErrorDomain em [SWS_CORE_90023]. A declaração deve ser incluída através do cabeçalho ara/com/com_error_domain.h ([SWS_CM_11331]).
Tratamento de erros e simultaneidade
O método está provido com a especificação noexcept e classificado como seguro contra exceções (exception safe) ([SWS_CM_11331]). Em caso de erro, não são lançadas exceções nem são reportados códigos de erro específicos, uma vez que se trata de uma operação puramente de leitura. Visto que é endereçada exclusivamente uma constante de cadeia de carateres imutável, o método deverá ser reentrante e suportar com segurança chamadas concorrentes a partir de múltiplas threads sem sincronização externa. Pergunta Q-a9f6ae55558ebb1f (aberta)
Interação
A função é parte integrante dos identificadores de domínios de erro padronizados dentro da gestão de comunicação (AUTOSAR_AP_SWS_CommunicationManagement §1 «Change History»). O esquema de nomenclatura e de interfaces está implementado de forma consistente em domínios correlacionados: assim, também o domínio de erros fim a fim ara::com::e2e::ComE2EErrorDomain via [SWS_CM_12507] e o domínio de erros SecOC-FVM apext::com::secoc::ComSecOcFvmErrorDomain via [SWS_CM_12518] definem métodos Name() semelhantes para identificação.
Este texto foi gerado por uma IA com base na especificação 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.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: bc30613084e7ProcedênciaPerguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
usar
A função-membro ThrowAsException do domínio de erros ara::com::ComErrorDomain ([SWS_CM_11333]; SWS CommunicationManagement §8.12.4.2.2.3 «ThrowAsException») gera de forma síncrona, a partir de um código de erro errorCode transmitido (do tipo const ara::core::ErrorCode&), uma instância da exceção ara::com::ComException e lança-a imediatamente. A interface não possui valor de retorno (void) e é declarada através do ficheiro de cabeçalho ara/com/com_error_domain.h.
Tratamento de erros e segurança de exceções
A assinatura está declarada com noexcept(false) e especificada como não segura contra exceções (not exception safe) ([SWS_CM_11333]), dado que o disparo da exceção é o objetivo principal da função. Não estão definidas mensagens DET ou DEM específicas para esta chamada.
Condições de contorno e restrições
Aplica-se como condição de contorno central: se as exceções de C++ estiverem desativadas na toolchain do compilador, a função não participa na resolução de sobrecargas de acordo com [SWS_CORE_10304] ([SWS_CM_11333]). Interpretação: em arquiteturas de software com tratamento de exceções desativado, a função não deverá, portanto, ser invocável em tempo de compilação. Pergunta Q-437f825160e6801e (aberta)
gemini-3.8-flash-low· 2026-10-13 · Original em alemão