DEENESPTFRRUARHIKOZHNL

classe ara::sm::SmException

[SWS_SM_81242] Upstream: RS_AP_00119

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

Exception type thrown by State Management.

Header-Datei#include "ara/sm/sm_error_domain.h"
Forwarding-Header#include "ara/sm/sm_fwd.h"
Scopenamespace ara::sm
Basisklasse(n)ara::core::Exception

Guia do utilizadorGERADO POR IA

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

Encapsula códigos de erro do State Management para propagação e tratamento de erros funcionais críticos como exceção C++.

A classe ara::sm::SmException serve para a propagação de situações excepcionais que ocorrem durante operações do State Management [SWS_SM_81242]. Ela deriva de ara::core::Exception e encapsula um ara::core::ErrorCode específico para a identificação exata da causa do erro ocorrido. Sua criação é feita por meio de um construtor explícito, que é especificado como thread-safe e seguro contra exceções [SWS_SM_81243]. Aplicações chamadoras capturam o objeto de forma estruturada para analisar o código de erro contido e iniciar as medidas de recuperação correspondentes.

Contexto

A classe ara::sm::SmException atua como exceção central para o cluster funcional State Management na AUTOSAR Adaptive Platform [SWS_SM_81242]. Ela é definida no cabeçalho ara/sm/sm_error_domain.h e deriva publicamente da classe de exceção fundamental da plataforma ara::core::Exception AUTOSAR_AP_SWS_StateManagement §8.1.4 «Class: SmException». Dentro do documento, a especificação da classe é mantida com o status DRAFT [SWS_SM_81242].

No contexto arquitetural, a classe conecta três papéis centrais: o State Management como instância disparadora em caso de falha em operações de estado, a aplicação Adaptive chamadora como tratador, bem como a infraestrutura básica de ara::core, que fornece a interface comum para o tratamento de erros. Como portadora de estados de erro, ela serve para repassar situações de erro do módulo sm de forma síncrona a instâncias de controle de nível superior por meio do mecanismo de exceção C++.

Ciclo de vida

A instanciação de ara::sm::SmException ocorre explicitamente por meio do construtor SmException(ara::core::ErrorCode errorCode) [SWS_SM_81243]. Este construtor é declarado como noexcept e apresenta tanto a propriedade de segurança contra exceções (exception safe) quanto de segurança para threads (thread-safe) AUTOSAR_AP_SWS_StateManagement §8.1.4.1.1.1 «SmException». Isso garante que a própria criação do objeto de exceção não falhe nem lance exceções secundárias, mesmo que seja criado em contextos de execução concorrentes.

Após a criação, a instância é habitualmente lançada por valor (by value) e capturada no contexto chamador como referência a objetos constantes (const ara::sm::SmException& ou polimorficamente como const ara::core::Exception&). Como a especificação não prescreve destrutores específicos ou rotinas manuais de limpeza, a destruição do objeto de exceção deve, por interpretação, seguir integralmente a semântica padrão do C++ e os mecanismos da classe base ara::core::Exception assim que o bloco de tratamento responsável for encerrado. Pergunta Q-85b1fd2f6082db8e (aberta)

Caminho de utilização

O fluxo típico começa em um componente de aplicação ou de plataforma que envia uma solicitação de controle de estado ao State Management. Se a mudança de estado solicitada não puder ser realizada internamente ou se houver um erro excepcional grave, o State Management instancia um exemplar de ara::sm::SmException sob indicação do respectivo ara::core::ErrorCode [SWS_SM_81243].

Sinalização de erro via SmExceptionAplicaçãoState ManagementSmExceptionExecutar solicitação de estadoFehler identifizieren (ErrorCode)SmException(errorCode)Instanz bereitgestelltthrow SmExceptioncatch (const SmException&) e avaliar código de erro

Diagrama de sequência: Sinalização e tratamento típicos de um erro por meio de SmException no State Management. Fontes: [SWS_SM_81242], [SWS_SM_81243].

O componente chamador captura a exceção lançada em um bloco catch correspondente. Por meio dos métodos herdados da classe base ara::core::Exception, a aplicação pode inspecionar o ara::core::ErrorCode encapsulado a fim de mapear semanticamente a causa do erro e introduzir medidas direcionadas para correção de falhas ou restauração do estado do sistema.

Cenários de erro

A classe ara::sm::SmException não representa, por si mesma, um elemento operacional propenso a erros, mas é o objeto portador primário para situações excepcionais dentro do State Management [SWS_SM_81242]. Uma pré-condição essencial para a criação é o fornecimento de um objeto ara::core::ErrorCode inicializado na chamada do construtor [SWS_SM_81243].

Se uma ara::sm::SmException lançada não for capturada por nenhum tratador compatível na pilha de chamadas, isso levará, segundo as regras padrão do C++, à chamada de std::terminate e, portanto, ao encerramento descontrolado do processo afetado. Em implementações que prescrevem a dispensa de exceções em favor de ara::core::Result, o lançamento é evitado; no entanto, se o caminho de exceção estiver disponível, o encapsulamento assegura que o código de erro original seja transportado sem alterações para o diagnóstico de erros.

Este guia de classe é baseado na especificação AUTOSAR Adaptive R25-11. Todas as informações fundamentam-se nos pontos de especificação referenciados.

Diagrama de classes UML

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

G nara__sm__SmException872 SmException + SmException() nara__core__Exception792 Exception nara__sm__SmException872->nara__core__Exception792 nstd__exception10 std::exception nara__core__Exception792->nstd__exception10

Construtores e destrutor

SmException função

Construct a new StateManagement exception object containing an error code.

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

Documentação dos métodos

função SmException [SWS_SM_81243] Upstream: RS_AP_00119, RS_AP_00159

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

Construct a new StateManagement exception object containing an error code.

Header-Datei#include "ara/sm/sm_error_domain.h"
Scopeclass ara::sm::SmException
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_SM_81243
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_SM_81243@rel:R25-11#329db6e0
Content hash
329db6e0
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_StateManagement.pdf#nameddest=SWS_SM_81243
Status: valid/unmigrated Version: rel:R25-11#aa947f45 Versionshistorie & Revisions (1 transition)
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_SM_81243@rel:R25-11#aa947f45
Point-in-Time History:
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