DEENESPTFRRUARHIKOZHNL

classe ara::per::PerErrorDomain

[SWS_PER_00312] Upstream: RS_AP_00122, RS_AP_00127, RS_AP_00140

class PerErrorDomain final :             public ara::core::ErrorDomain {...};

Defines the error domain for 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::ErrorDomain
Unique IDAs per ara::per::PerErrorDomain in [SWS_CORE_90023]

Guia do utilizadorGERADO POR IA

Define o domínio de erro do módulo de persistência para disponibilização de códigos de erro, descrições textuais e exceções.
GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: da81ed3d3cb6 Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Define o domínio de erro do módulo de persistência para disponibilização de códigos de erro, descrições textuais e exceções.

A classe ara::per::PerErrorDomain define o domínio de erro para o módulo de persistência e associa códigos de erro a mensagens descritivas, bem como a tipos de exceção [SWS_PER_00411]. Permite a consulta do nome do domínio através de interfaces seguras para threads, bem como a resolução de descrições de erro para valores de erro concretos. Em caso de necessidade, converte erros através de ThrowAsException() em exceções C++ [SWS_PER_00350]. Se as exceções estiverem desativadas na toolchain do compilador, esta função de lançamento não fica disponível, de modo que a verificação de erros tem de ser efetuada puramente com base em valores de retorno.

Contexto

A classe ara::per::PerErrorDomain define o domínio de erro específico para o módulo de persistência (Persistency) dentro da AUTOSAR Adaptive Platform. Herda da definição de tipo base ara::core::ErrorDomain e está declarada como final, constituindo assim a base para o tratamento tipificado de erros e para o mapeamento de erros de todas as operações relacionadas com persistência. Através dos aliases de tipo padronizados Errc [SWS_PER_00411] para a enumeração de códigos de erro subjacente PerErrc, bem como Exception [SWS_PER_00412] para a classe base de exceção específica do módulo PerException, a classe associa valores de erro numéricos, mensagens de erro elucidativas e objetos de exceção C++ concretos. Na arquitetura da plataforma, o domínio de erro interage estreitamente com os serviços de persistência, com os clusters funcionais chamadores, bem como com as estruturas genéricas de erro e de resultado de ara::core.

Ciclo de vida

A criação de uma instância é realizada através do construtor padrão PerErrorDomain() [SWS_PER_00313]. Este construtor está declarado como noexcept, totalmente seguro contra exceções (exception safe) e seguro para threads (thread-safe). Interpretação: a instância de PerErrorDomain deverá ser tipicamente gerida como objeto de longa duração ou global, de forma a garantir comparações de domínio e resoluções de tipo consistentes para erros de persistência durante todo o funcionamento. Pergunta Q-5d90982fddec40a7 (aberta) Como todas as operações de consulta da classe também estão classificadas como seguras para threads, múltiplas threads podem aceder em paralelo à mesma instância do domínio sem necessidade de mecanismos de sincronização adicionais ao nível do chamador.

Caminho de utilização

Um caminho de utilização típico compreende a identificação do domínio, a consulta de informações de diagnóstico compreensíveis e, opcionalmente, o lançamento de exceções em caso de erros ocorridos no módulo de persistência. Primeiramente, a função-membro Name() retorna o identificador unívoco do domínio de erros como cadeia de caracteres [SWS_PER_00314]; ela é especificada como noexcept, segura contra exceções e segura para threads. Se ocorrer um erro durante uma operação de persistência, o seu valor de erro numérico é resolvido através de Message() [SWS_PER_00315]. Este método recebe o código de erro numérico do tipo CodeType e retorna a mensagem de erro correspondente como ponteiro constante para caracteres (const char *), igualmente sob garantia de segurança completa contra exceções e segurança para threads.

Caso um estado de erro deva ser convertido numa exceção C++, a função ThrowAsException() é utilizada [SWS_PER_00350]. O fluxo seguinte esclarece a interação na consulta de erros e no lançamento de exceções:

Consulta de erros e lançamento de exceção em PerErrorDomainAplicaçãoPersistenzLaufzeitPerErrorDomainExecutar operação de persistência()Retorno de código de erro / ResultMessage(errorCode)const char * (Fehlernachricht)optTratamento de exceções desejadoThrowAsException(errorCode)throw PerException

Diagrama de sequência: fluxo típico da verificação de erros, consulta de texto e lançamento de exceções através da PerErrorDomain. Fontes: [SWS_PER_00314], [SWS_PER_00315], [SWS_PER_00350].

Cenários de erro

No emprego prático de ara::per::PerErrorDomain, os desenvolvedores têm de ter em conta as diferentes garantias relativamente ao tratamento de erros e à segurança contra exceções. Enquanto as interfaces de consulta Name() [SWS_PER_00314] e Message() [SWS_PER_00315] são estritamente declaradas como noexcept e classificadas como seguras contra exceções, a função-membro ThrowAsException() é considerada como não segura contra exceções (not exception safe) [SWS_PER_00350]. Este comportamento é semanticamente justificado, uma vez que a finalidade da função consiste no lançamento controlado de uma exceção correspondente ao código de erro (noexcept(false)).

Uma condição de contorno essencial diz respeito a plataformas ou configurações de build sem exceções C++ ativadas: se o tratamento de exceções estiver desativado no compilador, ThrowAsException() não participa na resolução de sobrecarga, em conformidade com [SWS_PER_00350]. Em tais ambientes, o software de aplicação tem de recorrer à avaliação de códigos de erro através dos aliases disponibilizados Errc [SWS_PER_00411] e das descrições textuais de Message() [SWS_PER_00315], em vez de capturar objetos de exceção do tipo Exception [SWS_PER_00412].

Este guia foi criado automaticamente com base nos requisitos da especificação AUTOSAR.

Mapa de membros

Construtores e destrutor

1

Aliases de tipo

2

Diagrama de classes

Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.

G nara__per__PerErrorDomain979 PerErrorDomain + PerErrorDomain() + Message() + Name() + ThrowAsException() nara__core__ErrorDomain335 ErrorDomain nara__per__PerErrorDomain979->nara__core__ErrorDomain335

Vista de detalhes

Selecione uma entrada no índice.

Construtores e destrutor

Creates a PerErrorDomain instance.

PerErrorDomain () noexcept;

Métodos

Message função

Returns the message associated with the error code.

const char * Message (CodeType errorCode) const noexcept override;
Name função

Returns the name of the error domain.

const char * Name () const noexcept override;

Throws the exception associated with the error code. As per [SWS_CORE_10304], this function does not participate in overload resolution when C++ exceptions are disabled in the compiler toolchain.

void ThrowAsException (const ara::core::ErrorCode &errorCode) const noexcept(false) override;

Aliases de tipo

Errc alias de tipo

Alias for the error code value enumeration.

using Errc = PerErrc;
Exception alias de tipo

Alias for the exception base class.

Documentação dos métodos

função Message [SWS_PER_00315] Upstream: RS_AP_00119, RS_AP_00120, RS_AP_00121, RS_AP_00159

const char * Message (CodeType errorCode) const noexcept override;

Returns the message associated with the error code.

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

Parameter (in)

ParameterBeschreibung
errorCodeThe error code number.

Rückgabewert

TypBeschreibung
const char *The message associated with the error code.

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

Record
AUTOSAR/AP/record/SWS_PER_00315
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_PER_00315@rel:R25-11#a674ab48
Content hash
a674ab48
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Persistency.pdf#nameddest=SWS_PER_00315
Status: valid/unmigrated Version: rel:R25-11#b3b0e84a 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_00315@rel:R25-11#b3b0e84a
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#dcf865cc2026-09-30
  • R19-11rel:R19-11#fa40c0592026-10-14
  • R20-11rel:R20-11#482223252026-10-14
  • R21-11rel:R21-11#4762f8102026-10-14
  • R22-11rel:R22-11#03cd14022026-10-14
  • R23-11rel:R23-11#d69d63782026-10-14
  • R24-11rel:R24-11#b3b0e84a2026-10-14
  • R25-11rel:R25-11#b3b0e84a2026-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

função Name [SWS_PER_00314] Upstream: RS_AP_00119, RS_AP_00120, RS_AP_00159

const char * Name () const noexcept override;

Returns the name of the error domain.

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

Rückgabewert

TypBeschreibung
const char *As per ara::per::PerErrorDomain in [SWS_CORE_90023].

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

Record
AUTOSAR/AP/record/SWS_PER_00314
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_PER_00314@rel:R25-11#ef2a4b5e
Content hash
ef2a4b5e
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Persistency.pdf#nameddest=SWS_PER_00314
Status: valid/unmigrated Version: rel:R25-11#bbc9c834 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_00314@rel:R25-11#bbc9c834
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#8efa8b412026-09-30
  • R19-11rel:R19-11#157f07862026-10-14
  • R20-11rel:R20-11#578706942026-10-14
  • R21-11rel:R21-11#578706942026-10-14
  • R22-11rel:R22-11#7e3ba2a72026-10-14
  • R23-11rel:R23-11#4ed7a81d2026-10-14
  • R24-11rel:R24-11#f4d2bd532026-10-14
  • R25-11rel:R25-11#bbc9c8342026-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

função PerErrorDomain [SWS_PER_00313] Upstream: RS_AP_00119, RS_AP_00120, RS_AP_00159

PerErrorDomain () noexcept;

Creates a PerErrorDomain instance.

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

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

Record
AUTOSAR/AP/record/SWS_PER_00313
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_PER_00313@rel:R25-11#9dc78191
Content hash
9dc78191
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Persistency.pdf#nameddest=SWS_PER_00313
Status: valid/unmigrated Version: rel:R25-11#676bd5fe 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_00313@rel:R25-11#676bd5fe
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#2fe03ca62026-09-30
  • R19-11rel:R19-11#493784652026-10-14
  • R20-11rel:R20-11#e90ad4282026-10-14
  • R21-11rel:R21-11#4fed90922026-10-14
  • R22-11rel:R22-11#c86bdbe02026-10-14
  • R23-11rel:R23-11#07bddb402026-10-14
  • R24-11rel:R24-11#676bd5fe2026-10-14
  • R25-11rel:R25-11#676bd5fe2026-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

função ThrowAsException [SWS_PER_00350] Upstream: RS_AP_00120, RS_AP_00121

void ThrowAsException (const ara::core::ErrorCode &errorCode) const noexcept(false) override;

Throws the exception associated with the error code. As per [SWS_CORE_10304], this function does not participate in overload resolution when C++ exceptions are disabled in the compiler toolchain.

Header-Datei#include "ara/per/per_error_domain.h"
Scopeclass ara::per::PerErrorDomain
Exception-Sicherheitnot exception safe
Thread-Sicherheitthread-safe

Parameter (in)

ParameterBeschreibung
errorCodeThe error to throw.

Rückgabewert

TypBeschreibung
None

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

Record
AUTOSAR/AP/record/SWS_PER_00350
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_PER_00350@rel:R25-11#e469a27b
Content hash
e469a27b
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Persistency.pdf#nameddest=SWS_PER_00350
Status: valid/unmigrated Version: rel:R25-11#d5cad670 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_00350@rel:R25-11#d5cad670
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#ac2c50332026-09-30
  • R19-11rel:R19-11#08d8b5132026-10-14
  • R20-11rel:R20-11#bcef1c2f2026-10-14
  • R21-11rel:R21-11#bcef1c2f2026-10-14
  • R22-11rel:R22-11#855e1f712026-10-14
  • R23-11rel:R23-11#a44240ed2026-10-14
  • R24-11rel:R24-11#d5cad6702026-10-14
  • R25-11rel:R25-11#d5cad6702026-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

Documentação dos aliases de tipo

alias de tipo Errc [SWS_PER_00411] Upstream: RS_AP_00122

using Errc = PerErrc;

Alias for the error code value enumeration.

Header-Datei#include "ara/per/per_error_domain.h"
Scopeclass ara::per::PerErrorDomain
SymbolErrc

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

Record
AUTOSAR/AP/record/SWS_PER_00411
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_PER_00411@rel:R25-11#b3033f23
Content hash
b3033f23
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Persistency.pdf#nameddest=SWS_PER_00411
Status: valid/unmigrated Version: rel:R25-11#9d0ddf8d Versionshistorie & Revisions (1 transition, 7 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_00411@rel:R25-11#9d0ddf8d
Point-in-Time History:
Recorded Revisions (7):
  • R25-11rel:R25-11#78fe22022026-09-30
  • R20-11rel:R20-11#39e744882026-10-14
  • R21-11rel:R21-11#39e744882026-10-14
  • R22-11rel:R22-11#8f96934a2026-10-14
  • R23-11rel:R23-11#9d0ddf8d2026-10-14
  • R24-11rel:R24-11#9d0ddf8d2026-10-14
  • R25-11rel:R25-11#9d0ddf8d2026-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

alias de tipo Exception [SWS_PER_00412] Upstream: RS_AP_00122

using Exception = PerException;

Alias for the exception base class.

Header-Datei#include "ara/per/per_error_domain.h"
Scopeclass ara::per::PerErrorDomain
SymbolException

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

Record
AUTOSAR/AP/record/SWS_PER_00412
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_PER_00412@rel:R25-11#720360f7
Content hash
720360f7
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Persistency.pdf#nameddest=SWS_PER_00412
Status: valid/unmigrated Version: rel:R25-11#12539c4d Versionshistorie & Revisions (1 transition, 7 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_00412@rel:R25-11#12539c4d
Point-in-Time History:
Recorded Revisions (7):
  • R25-11rel:R25-11#0875fcdc2026-09-30
  • R20-11rel:R20-11#e88607572026-10-14
  • R21-11rel:R21-11#e88607572026-10-14
  • R22-11rel:R22-11#b0bd04f32026-10-14
  • R23-11rel:R23-11#12539c4d2026-10-14
  • R24-11rel:R24-11#12539c4d2026-10-14
  • R25-11rel:R25-11#12539c4d2026-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