DEENESPTFRRUARHIKOZHNL

classe ara::exec::ExecException

[SWS_EM_02282] Upstream: RS_AP_00130, RS_AP_00122, RS_AP_00127, RS_AP_00154, RS_AP_00150, RS_AP_00140

class ExecException final :          public ara::core::Exception {...};

Defines a class for exceptions to be thrown by the Execution Management.

Header-Datei#include "ara/exec/exec_error_domain.h"
Forwarding-Header#include "ara/exec/exec_fwd.h"
Scopenamespace ara::exec
Basisklasse(n)ara::core::Exception

Guia do utilizadorGERADO POR IA

Encapsula códigos de erro do Execution Management como exceção C++ para tratamento síncrono de erros.
GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: e102ca6cc8ed Procedência Perguntas em aberto (3)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Encapsula códigos de erro do Execution Management como exceção C++ para tratamento síncrono de erros.

A classe ara::exec::ExecException serve como classe de exceção final do Execution Management para o encapsulamento e sinalização de erros específicos do módulo por meio do mecanismo de exceções C++. Em caso de erro, instâncias são criadas e lançadas com a indicação de um ara::core::ErrorCode através do construtor thread-safe, após o que os locais chamadores as capturam e analisam [SWS_EM_02283]. Como condição de contorno fundamental, a construção é especificada como noexcept, garantindo que a criação do objeto permaneça segura quanto a exceções [SWS_EM_02283]. Exceções não tratadas devem ser evitadas, pois levam à terminação do sistema.

Contexto

A classe ara::exec::ExecException representa a classe de exceção central do módulo Execution Management (exec) dentro da AUTOSAR Adaptive Platform. De acordo com sua especificação, ela serve como encapsulamento para exceções acionadas pelo Execution Management. A declaração de classe a define como final com derivação pública da classe de exceção base padrão ara::core::Exception, integrando-se perfeitamente ao conceito uniforme de tratamento de exceções e de erros da Adaptive Platform. O identificador final exclui qualquer especialização ou subclassificação adicional.

A classe de exceção é declarada no cabeçalho #include "ara/exec/exec_error_domain.h" [SWS_EM_02283]. A responsabilidade funcional primária de ara::exec::ExecException reside no transporte de estados de erro específicos do módulo através do mecanismo de exceções C++. Interpretação: o lançamento desta exceção deve ter relevância sobretudo em ambientes de execução nos quais estados de erro do Execution Management não são propagados puramente por meio de tipos de erro baseados em valor, sendo necessária uma interrupção síncrona do fluxo de controle via exceções C++. Pergunta Q-8faec8c282524965 (aberta)

Ciclo de vida

O ciclo de vida de uma instância de ara::exec::ExecException inicia-se com a construção explícita mediante a passagem de um código de erro. O construtor explicit ExecException(ara::core::ErrorCode errorCode) noexcept cria um novo objeto de exceção que encapsula o código de erro fornecido [SWS_EM_02283]. A marcação como noexcept assegura que a criação do objeto permaneça garantidamente livre de falhas mesmo no contexto de um tratamento de erros já existente e não desencadeie erros secundários em cascata [SWS_EM_02283].

Em termos de segurança de execução, a construção é classificada explicitamente como segura contra exceções («exception safe») e segura para threads («thread-safe») [SWS_EM_02283]. Isso viabiliza a criação confiável de instâncias de exceção entre diferentes threads, sem a necessidade de mecanismos adicionais de sincronização. Após o disparo via throw, o objeto passa para a gerência do sistema de tempo de execução C++. Interpretação: a destruição do objeto de exceção ocorre automaticamente após a saída do bloco catch tratador no decorrer do desenrolamento de pilha (stack unwinding) regular, razão pela qual não é necessária nenhuma gestão explícita do ciclo de vida por parte do chamador. Pergunta Q-ec22ad5f177555aa (aberta)

Caminho de utilização

Um caminho típico de utilização de ara::exec::ExecException abrange a instanciação em caso de erro dentro do Execution Management, bem como a captura controlada no contexto da aplicação chamadora:

  • Identificação de erro e instanciação: ocorrendo uma condição de exceção no Execution Management, a causa é mapeada em um ara::core::ErrorCode do domínio de erro correspondente e utilizada para a inicialização explícita de uma ara::exec::ExecException [SWS_EM_02283].
  • Sinalização: a instância de exceção inicializada é lançada, interrompendo o caminho regular de execução e iniciando o desenrolamento da pilha.
  • Captura: componentes chamadores capturam o objeto de exceção especificamente como const ara::exec::ExecException& ou de forma mais genérica através da classe base polimórfica const ara::core::Exception&.
  • Avaliação: Interpretação: como o objeto foi construído com um ara::core::ErrorCode [SWS_EM_02283] e herda de ara::core::Exception, o receptor deve extrair o código de erro contido por meio de interfaces da classe base para executar medidas de recuperação ou de registro específicas do módulo. Pergunta Q-d4671c34f5aab6f9 (aberta)

Cenários de erro

Como classe de exceção especializada, ara::exec::ExecException é projetada para representar situações de erro existentes sem induzir novos erros em sua própria utilização. Para a criação, o construtor exige a passagem de um ara::core::ErrorCode [SWS_EM_02283]. Como o construtor é declarado como noexcept, estão excluídos erros de pré-condição na instanciação que poderiam impedir a criação do objeto de exceção [SWS_EM_02283].

Um cenário essencial de falha no nível de sistema reside na captura incompleta de exceções lançadas. Se uma exceção disparada por ara::exec::ExecException permanecer não tratada ao longo da hierarquia de chamadas, o tratamento padrão de tempo de execução do C++ atua, resultando tipicamente na chamada de std::terminate e, com isso, no encerramento prematuro do processo. Componentes de software interativos devem, portanto, assegurar que chamadas para funções do Execution Management potencialmente lançadoras estejam protegidas por blocos try-catch adequados.

Este guia foi gerado por uma IA com base na especificação AUTOSAR Adaptive Platform R25-11.

Diagrama de classes UML

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

G nara__exec__ExecException556 ExecException + ExecException() nara__core__Exception792 Exception nara__exec__ExecException556->nara__core__Exception792 nstd__exception10 std::exception nara__core__Exception792->nstd__exception10

Construtores e destrutor

ExecException função

Constructs a new ExecException object containing an error code.

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

Documentação dos métodos

função ExecException [SWS_EM_02283] Upstream: RS_AP_00120, RS_AP_00121, RS_AP_00130, RS_AP_00159

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

Constructs a new ExecException object containing an error code.

Header-Datei#include "ara/exec/exec_error_domain.h"
Scopeclass ara::exec::ExecException
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_EM_02283
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_EM_02283@rel:R25-11#674a0a7f
Content hash
674a0a7f
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_ExecutionManagement.pdf#nameddest=SWS_EM_02283
Status: valid/unmigrated Version: rel:R25-11#f57f2491 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_EM_02283@rel:R25-11#f57f2491
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#7afdb8d92026-09-30
  • R19-11rel:R19-11#5683c5ea2026-10-14
  • R20-11rel:R20-11#1a1c4d242026-10-14
  • R21-11rel:R21-11#1a1c4d242026-10-14
  • R22-11rel:R22-11#49bf1b972026-10-14
  • R23-11rel:R23-11#4052ff1d2026-10-14
  • R24-11rel:R24-11#8fa7f4222026-10-14
  • R25-11rel:R25-11#f57f24912026-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