DEENESPTFRRUARHIKOZHNL

classe ara::per::PerException

[SWS_PER_00354] Upstream: RS_AP_00122, RS_AP_00127

class PerException :            public ara::core::Exception {...};

Exception type thrown by Persistency.

Header-Datei#include "ara/per/per_error_domain.h"
Forwarding-Header#include "ara/per/per_fwd.h"
Scopenamespace ara::per
Basisklasse(n)ara::core::Exception

Guia do utilizadorGERADO POR IA

Serve para encapsular e sinalizar erros do módulo de persistência com base em um código de erro específico.
GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: abab05ca22f0 Procedência Perguntas 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.

G nara__per__PerException768 PerException + PerException() nara__core__Exception792 Exception nara__per__PerException768->nara__core__Exception792 nstd__exception10 std::exception nara__core__Exception792->nstd__exception10

Construtores e destrutor

PerException função

Construct a new Persistency exception object containing an error code.

explicit PerException (ara::core::ErrorCode errorCode) noexcept;

Documentação dos métodos

função PerException [SWS_PER_00355] Upstream: RS_AP_00120, RS_AP_00121, RS_AP_00135, RS_AP_00159

explicit PerException (ara::core::ErrorCode errorCode) noexcept;

Construct a new Persistency exception object containing an error code.

Header-Datei#include "ara/per/per_error_domain.h"
Scopeclass ara::per::PerException
Exception-Sicherheitexception safe
Thread-Sicherheitthread-safe

Parameter (in)

ParameterBeschreibung
errorCodeThe error code.

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_PER_00355
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_PER_00355@rel:R25-11#5c52fb19
Content hash
5c52fb19
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Persistency.pdf#nameddest=SWS_PER_00355
Status: valid/unmigrated Version: rel:R25-11#de57fc23 Versionshistorie & Revisions (1 transition, 8 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_PER_00355@rel:R25-11#de57fc23
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#f5dacf6e2026-09-30
  • R19-11rel:R19-11#606e44052026-10-14
  • R20-11rel:R20-11#bf89ad122026-10-14
  • R21-11rel:R21-11#bf89ad122026-10-14
  • R22-11rel:R22-11#b5d8215d2026-10-14
  • R23-11rel:R23-11#9889dc0a2026-10-14
  • R24-11rel:R24-11#de57fc232026-10-14
  • R25-11rel:R25-11#de57fc232026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill