Serve para encapsular e sinalizar erros do módulo de persistência com base em um código de erro específico.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: abab05ca22f0ProcedênciaPerguntas em aberto (2)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
Serve para encapsular e sinalizar erros do módulo de persistência com base em um código de erro específico.
A classe ara::per::PerException serve na AUTOSAR Adaptive Platform como tipo de exceção específico para sinalização de erros a partir do módulo de persistência. Ela é disponibilizada através do cabeçalho ara/per/per_error_domain.h e herda da classe base ara::core::Exception[SWS_PER_00355]. A instanciação ocorre explicitamente mediante a passagem de um ara::core::ErrorCode, o qual encapsula a causa concreta do erro. Pela declaração do construtor como noexcept, a criação é especificada como totalmente segura contra exceções bem como thread-safe [SWS_PER_00355].
Contexto
A classe ara::per::PerException atua como tipo de exceção central e especializado para o cluster funcional da persistência (módulo per) dentro da AUTOSAR Adaptive Platform na release R25-11. De acordo com sua sintaxe formal, a classe é derivada publicamente da exceção base geral ara::core::Exception. Sua responsabilidade primária consiste em sinalizar para camadas superiores de aplicação estados de erro graves ou não tratáveis diretamente por meio de valores de retorno regulares a partir do subsistema de persistência. A classe é definida no cabeçalho ara/per/per_error_domain.h[SWS_PER_00355]. Na arquitetura, ela interage estreitamente com a infraestrutura de tratamento de erros da plataforma, transportando um ara::core::ErrorCode para o diagnóstico exato do erro em cada instância [SWS_PER_00355].
Ciclo de vida
O ciclo de vida de um objeto ara::per::PerException está diretamente vinculado à detecção e ao encaminhamento de um erro dentro de operações de persistência. A instanciação ocorre por meio de um construtor explícito que recebe exatamente um parâmetro do tipo ara::core::ErrorCode[SWS_PER_00355]. Este construtor é declarado como explicit para impedir conversões implícitas de tipo a partir de códigos de erro e é provido com a especificação noexcept[SWS_PER_00355]. Isso assegura que nenhuma outra exceção possa ocorrer durante a própria construção do objeto de exceção; a criação é, assim, totalmente segura quanto a exceções (exception safe) [SWS_PER_00355].
Em relação à simultaneidade, a criação de ara::per::PerException é especificada como segura para threads (thread-safe) [SWS_PER_00355]. Após a chamada do construtor, o objeto é lançado ao longo da pilha de chamadas. A posse e a destruição seguem as regras padrão do C++ para tratamento de exceções: o objeto permanece na área de memória do sistema de tempo de execução até que o bloco catch capturador seja concluído, sendo subsequentemente destruído de forma determinística.
Caminho de utilização
O fluxo típico na utilização de ara::per::PerException divide-se nas seguintes etapas:
Detecção de erro e geração de código: o módulo de persistência identifica um estado não permitido ou a falha de uma operação de armazenamento e mapeia isso em um ara::core::ErrorCode correspondente.
Instanciação: mediante a passagem desse código de erro, o objeto de exceção é criado explicitamente por meio de PerException(errorCode)[SWS_PER_00355].
Disparo da exceção: o subsistema de persistência lança a instância de exceção a partir da interface de função afetada.
Captura e avaliação: a aplicação chamadora captura o objeto especificamente como ara::per::PerException ou de forma polimórfica como ara::core::Exception ou std::exception. Interpretação: a aplicação deve, subsequentemente, ler o ara::core::ErrorCode encapsulado através dos métodos de acesso herdados da classe base para iniciar medidas direcionadas de correção de erro. Pergunta Q-6e48fd125d9938d8 (aberta)
Cenários de erro
Como ara::per::PerException serve para a representação de erros, a robustez da criação do objeto e a integridade da informação de erro estão em primeiro plano em cenários de falha. Como pré-condição essencial, o construtor exige um ara::core::ErrorCode válido como parâmetro de entrada [SWS_PER_00355]. Como o construtor é declarado como noexcept, está excluída a ocorrência de exceções secundárias durante o relato de erros [SWS_PER_00355]. Além disso, a segurança de threads especificada garante que nenhuma corrupção de dados ou efeitos colaterais descoordenados surjam mesmo em falhas paralelas em múltiplos fluxos de execução [SWS_PER_00355].
Este guia baseia-se exclusivamente nos dados de especificação da AUTOSAR Adaptive Platform Release 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