Diese Seite wurde vollständig KI-generiert auf Basis von SWS Safe Hardware Acceleration (R25-11) — kein offizieller AUTOSAR-Text und keine automatisch extrahierte API-Seite wie die übrigen Module. Als Interpretation gekennzeichnete Aussagen sind Schlussfolgerungen aus den Quellen.
[AP_SWS_SHWA_00501] texto ainda não importadoUpstream: RS_SHWA_00008
class ErrorHandler final {...};
Die Spezifikation definiert diesen Klassentyp mit der gezeigten Schnittstelle.
Serve para a deteção e o reencaminhamento de erros no módulo shwa para uma rotina de tratamento específica da aplicação.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: d10c8775782fProcedênciaPerguntas em aberto (2)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
Serve para a deteção e o reencaminhamento de erros no módulo shwa para uma rotina de tratamento específica da aplicação.
A classe serve para a receção central e o reencaminhamento de erros no âmbito do módulo shwa. As instâncias apenas podem ser criadas através do método de fábrica estático, que disponibiliza o objeto num ponteiro exclusivo [AP_SWS_SHWA_00507]. Através do método de tratamento de erros, são passados e processados códigos de erro específicos [AP_SWS_SHWA_00508]. Dado que o processamento de erros não foi concebido para ser seguro para threads nem seguro contra exceções, a aplicação chamadora tem de coordenar os acessos concorrentes externamente.
Contexto
A classe ara::shwa::ErrorHandler disponibiliza no módulo shwa (Smart Hardware Actuator) uma interface especializada para a receção e o reencaminhamento direcionado de estados de erro específicos do módulo. Como parte integrante da AUTOSAR Adaptive Platform, desacopla a lógica real de hardware e atuadores das estratégias de tratamento de erros de nível superior. A classe está declarada como final, o que exclui a derivação e impõe um comportamento de utilização estritamente definido.
Os principais parceiros de interação de ara::shwa::ErrorHandler são:
A aplicação utilizadora ou o componente de plataforma que gere a instância e, em caso de erro, aciona o método de tratamento.
O callback std::function<void(ara::core::ErrorCode)> registado aquando da criação, que executa a reação de tratamento propriamente dita ao nível da aplicação.
O domínio de erros específico do módulo, representado pelo tipo ara::shwa::ShwaErrorCode.
Ciclo de vida
O ciclo de vida de uma instância de ara::shwa::ErrorHandler está sujeito a restrições rigorosas no que respeita à criação, copiabilidade e posse da memória. Uma construção regular através de construtores padrão está excluída, uma vez que o construtor sem parâmetros está eliminado [AP_SWS_SHWA_00502]. Para garantir uma identidade unívoca e responsabilidades claras, a definição da classe impede quaisquer operações de cópia e movimentação:
O operador de atribuição por movimentação está eliminado [AP_SWS_SHWA_00506].
A única possibilidade de instanciação é disponibilizada pelo método de fábrica estático Create[AP_SWS_SHWA_00507]. Este recebe o objeto de função std::function<void(ara::core::ErrorCode)> e retorna o resultado sob a forma de um ara::core::Result<std::unique_ptr<ErrorHandler>>. Através do std::unique_ptr, a posse exclusiva do objeto é transferida para o chamador. O tempo de vida da instância fica, assim, diretamente associado ao tempo de vida do smart pointer; aquando da sua destruição, o ErrorHandler é também libertado.
No que diz respeito à concorrência, o método de criação Create está especificado como seguro para threads (thread-safe) e seguro contra exceções (exception safe) [AP_SWS_SHWA_00507]. Por outro lado, o método para o tratamento operacional de erros HandleError não está especificado como seguro para threads nem como seguro contra exceções [AP_SWS_SHWA_00508]. Os acessos concorrentes à mesma instância têm, por conseguinte, de ser coordenados ao nível da aplicação.
Caminho de utilização
O fluxo típico na utilização de ara::shwa::ErrorHandler engloba a inicialização através da fábrica e o subsequente processamento de erros:
Definição do callback: a aplicação define uma rotina de tratamento com a assinatura void(ara::core::ErrorCode).
Criação: a aplicação chama o método estático Create e passa a função de callback [AP_SWS_SHWA_00507]. Após a verificação do ara::core::Result, a aplicação assume o std::unique_ptr<ErrorHandler>.
Sinalização de erro: se ocorrer um erro durante o funcionamento, é chamado na instância o método HandleError com o correspondente ara::shwa::ShwaErrorCode[AP_SWS_SHWA_00508].
Reencaminhamento: a instância processa o evento de erro; internamente, o código de erro específico do módulo deverá presumivelmente ser convertido num ara::core::ErrorCode e transmitido à função de callback registada (interpretação). Pergunta Q-4101388d317e1f5b (aberta)
Ao utilizar a classe, devem ser tidas em conta condições de contorno e casos extremos essenciais:
Falha na criação do objeto: A especificação não indica códigos de erro padronizados para o método de fábrica Create[AP_SWS_SHWA_00507]. Não obstante, o método retorna um ara::core::Result, de modo que eventuais condições de erro (como memória insuficiente) deverão ser reportadas através deste objeto de resultado (interpretação). Pergunta Q-85c2140acfda8244 (aberta) Os chamadores devem, portanto, validar o Result antes de acessar o ponteiro.
Pré-condições para o tratamento de erros: Uma chamada de HandleError pressupõe uma instância intacta e um ara::shwa::ShwaErrorCode válido [AP_SWS_SHWA_00508]. Como o método não possui valor de retorno, erros dentro do processamento não podem ser reportados diretamente ao chamador como código de status.
Ausência de segurança de exceção e de threads: Como HandleError é declarado como not thread-safe e not exception safe[AP_SWS_SHWA_00508], o ambiente chamador deve assegurar que as chamadas ocorram sequencialmente e que nenhuma exceção não tratada seja propagada no âmbito do tratamento de erros.
Este guia de classe baseia-se na especificação AUTOSAR para a Adaptive Platform (Release R25-11) e foi gerado automaticamente.
gemini-3.8-flash-low· 2026-10-13 · Original em alemão