DEENESPTFRRUARHIKOZHNL

classe ara::core::CoreException

[SWS_CORE_05211] Upstream: RS_AP_00130

class CoreException :            public Exception {...};

Exception type thrown for ara::core errors.

Header-Datei#include "ara/core/core_error_domain.h"
Forwarding-Header#include "ara/core/core_fwd.h"
Scopenamespace ara::core
Basisklasse(n)Exception

Guia do utilizadorGERADO POR IA

Serve como tipo de exceção para reporte de erros centrais e encapsula um código de erro para tratamento estruturado de exceções.
GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 2b622ea04d25 Procedência Perguntas em aberto (2)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Serve como tipo de exceção para reporte de erros centrais e encapsula um código de erro para tratamento estruturado de exceções.

A classe ara::core::CoreException serve como o tipo de exceção central para a transmissão de erros a partir do domínio funcional ara::core e, para esse fim, deriva da classe base Exception. A instanciação ocorre obrigatoriamente através do construtor mediante a passagem de um ErrorCode específico, que encapsula a causa do erro [SWS_CORE_05212]. Como condição de contorno essencial, a implementação garante total segurança de thread (thread-safety) e segurança contra exceções (exception-safety), bem como uma garantia irrestrita de noexcept durante a criação [SWS_CORE_05212]. Os chamadores capturam a exceção para tratar o estado de erro contido de forma controlada.

Contexto

A classe ara::core::CoreException serve como o tipo de exceção central para erros que ocorrem dentro do domínio funcional ara::core. De acordo com a declaração da classe, ela deriva publicamente da classe base Exception. A tarefa essencial de CoreException consiste em transferir um evento de erro ocorrido, descrito por um objeto ErrorCode, para o modelo de tratamento de exceções do C++. No contexto da plataforma, a classe atua, assim, como uma ponte entre o componente de infraestrutura detector de erros e o código de aplicação ou de plataforma chamador. Se uma operação em ara::core falhar e a interface previr uma exceção, CoreException é instanciada e sinalizada. Para isso, de acordo com [SWS_CORE_05212], o construtor recebe um objeto concreto do tipo ErrorCode, que encapsula a causa técnica e o domínio do erro ocorrido. A incorporação na hierarquia de classes permite que camadas de arquitetura superiores capturem erros especificamente como CoreException ou os tratem genericamente por meio da classe base Exception.

ErrorCode ErrorCode CoreException CoreException ErrorCode->CoreException initialisiert Exception Exception CoreException->Exception erbt von

Diagrama de contexto: Relação da CoreException com o ErrorCode e a classe base Exception. Fontes: [SWS_CORE_05212]

Ciclo de vida

O ciclo de vida de uma instância de CoreException começa no contexto da detecção de erros. A criação ocorre por meio do construtor explicit CoreException(ErrorCode err) noexcept, de acordo com [SWS_CORE_05212]. A palavra-chave explicit impede uma conversão implícita a partir de um ErrorCode, forçando uma criação deliberada do objeto. Uma característica essencial da construção é a especificação como noexcept [SWS_CORE_05212]: a própria instanciação não pode lançar exceções adicionais, assegurando uma geração confiável de exceções mesmo em estados críticos do sistema. Além disso, a segurança contra exceções é classificada como completamente segura (exception safe) e a operação é considerada thread-safe (thread-safe) [SWS_CORE_05212]. Após a criação, o objeto de exceção é usualmente repassado por meio de throw. Durante o desenrolamento de pilha (stack unwinding), a exceção é transportada até ser vinculada por um tratador de exceções compatível. O ciclo de vida termina com a saída do bloco de captura, momento em que a destruição do objeto de exceção é realizada deterministicamente.

Caminho de utilização

O caminho regular de utilização de CoreException divide-se em três fases sucessivas: diagnóstico, lançamento e captura. Inicialmente, um componente do módulo core identifica um desvio do comportamento especificado e instancia um ErrorCode correspondente. Em seguida, a exceção é criada chamando-se o construtor CoreException(err) [SWS_CORE_05212]. Imediatamente depois, ocorre o lançamento do objeto no contexto de execução. No nível da aplicação, a chamada é executada dentro de um bloco protegido. Se a condição de exceção ocorrer, um bloco catch captura a instância – tipicamente como uma referência constante para CoreException ou polimorficamente por meio da classe base Exception. No tratador, o erro pode ser analisado, registrado em log ou corrigido. Como o arquivo de cabeçalho #include "ara/core/core_error_domain.h" é prescrito de acordo com [SWS_CORE_05212], a declaração da classe fica consistentemente disponível para os módulos de aplicação.

Cenários de erro

No âmbito dos cenários de falha, a própria CoreException serve como portadora de sinal e não lança erros secundários durante a sua própria criação. Como o construtor é declarado como noexcept [SWS_CORE_05212], o cenário de falha de construção está excluído. A especificação garante estrita segurança contra exceções e segurança de thread [SWS_CORE_05212], de modo que o acesso concorrente durante a criação também permanece seguro. Um cenário de erro crítico surge no nível do sistema quando uma CoreException lançada não é capturada por nenhum escopo superior, o que no C++ padrão deve levar à chamada de std::terminate. Os desenvolvedores devem, portanto, assegurar que as chamadas a funções ara::core potencialmente lançadoras estejam envolvidas em blocos apropriados de tratamento de exceções. Outro cenário potencial diz respeito ao encaminhamento através de fronteiras de componentes, no qual o ErrorCode contido deve ser interpretado corretamente a fim de iniciar medidas adequadas de recuperação de falhas. Pergunta Q-492683ca01bebc7d (aberta)

Este guia foi gerado por um assistente de curadoria por IA com base no AUTOSAR R25-11.

Diagrama de classes UML

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

G nara__core__CoreException713 CoreException + CoreException() nara__core__Exception792 Exception nara__core__CoreException713->nara__core__Exception792 nstd__exception10 std::exception nara__core__Exception792->nstd__exception10

Construtores e destrutor

CoreException função

Construct a new CoreException from an ErrorCode.

explicit CoreException (ErrorCode err) noexcept;

Documentação dos métodos

função CoreException [SWS_CORE_05212] Upstream: RS_AP_00130

explicit CoreException (ErrorCode err) noexcept;

Construct a new CoreException from an ErrorCode.

Header-Datei#include "ara/core/core_error_domain.h"
Scopeclass ara::core::CoreException
Exception-Sicherheitexception safe
Thread-Sicherheitthread-safe

Parameter (in)

ParameterBeschreibung
errthe ErrorCode

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

Record
AUTOSAR/AP/record/SWS_CORE_05212
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CORE_05212@rel:R25-11#49648c91
Content hash
49648c91
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Core.pdf#nameddest=SWS_CORE_05212
Status: valid/unmigrated Version: rel:R25-11#fcccf313 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_CORE_05212@rel:R25-11#fcccf313
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#89d8f3922026-09-30
  • R19-11rel:R19-11#7047abf42026-10-14
  • R20-11rel:R20-11#69aba1672026-10-14
  • R21-11rel:R21-11#69aba1672026-10-14
  • R22-11rel:R22-11#7a696c932026-10-14
  • R23-11rel:R23-11#cc26b8992026-10-14
  • R24-11rel:R24-11#fcccf3132026-10-14
  • R25-11rel:R25-11#fcccf3132026-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