DEENESPTFRRUARHIKOZHNL

clase 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

Guía del usuarioGENERADO POR IA

Encapsula códigos de error de State Management para la transmisión y tratamiento de fallos funcionales críticos como excepción de C++.
GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 72647117def3 Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

Encapsula códigos de error de State Management para la transmisión y tratamiento de fallos funcionales críticos como excepción de C++.

La clase ara::sm::SmException sirve para la transmisión de situaciones excepcionales que se producen durante operaciones de State Management [SWS_SM_81242]. Se deriva de ara::core::Exception y encapsula un ara::core::ErrorCode específico para la identificación exacta de la causa del fallo producida. Su creación se realiza a través de un constructor explícito que está especificado como seguro para subprocesos y seguro frente a excepciones [SWS_SM_81243]. Las aplicaciones que realizan la llamada capturan el objeto de forma estructurada para analizar el código de error contenido e iniciar las correspondientes medidas de recuperación.

Contexto

La clase ara::sm::SmException actúa como excepción central para el clúster funcional State Management en la AUTOSAR Adaptive Platform [SWS_SM_81242]. Está definida en el encabezado ara/sm/sm_error_domain.h y se deriva públicamente de la clase de excepción fundamental de la plataforma ara::core::Exception AUTOSAR_AP_SWS_StateManagement §8.1.4 «Class: SmException». Dentro del documento, la especificación de la clase figura con el estado DRAFT [SWS_SM_81242].

En el contexto arquitectónico, la clase conecta tres roles centrales: State Management como instancia desencadenante en caso de operaciones de estado fallidas, la aplicación Adaptive que realiza la llamada como entidad de tratamiento y la infraestructura base de ara::core, que proporciona la interfaz común para el tratamiento de errores. Como portadora de estados de error, sirve para transmitir situaciones de fallo del módulo sm de forma síncrona a instancias de control de nivel superior mediante el mecanismo de excepciones de C++.

Ciclo de vida

La instanciación de ara::sm::SmException se realiza explícitamente mediante el constructor SmException(ara::core::ErrorCode errorCode) [SWS_SM_81243]. Este constructor está declarado como noexcept y presenta tanto la propiedad de seguridad frente a excepciones (exception safe) como la de seguridad para subprocesos (thread-safe) AUTOSAR_AP_SWS_StateManagement §8.1.4.1.1.1 «SmException». Gracias a ello, se garantiza que la propia creación del objeto de excepción no falle ni desencadene excepciones adicionales, incluso si se genera en contextos de ejecución concurrentes.

Tras su creación, la instancia se lanza habitualmente por valor (by value) y se captura en el contexto que realiza la llamada como referencia a objetos constantes (const ara::sm::SmException& o polimórficamente como const ara::core::Exception&). Dado que la especificación no prescribe destructores específicos ni rutinas de limpieza manual, la destrucción del objeto de excepción debería seguir, según la interpretación, íntegramente la semántica estándar de C++ y los mecanismos de la clase base ara::core::Exception tan pronto como se abandone el bloque de tratamiento correspondiente. Pregunta Q-85b1fd2f6082db8e (abierta)

Ruta de uso

El flujo típico comienza con un componente de aplicación o de plataforma que dirige una solicitud de control de estado a State Management. Si el cambio de estado solicitado no se puede consumar internamente o concurre un fallo de excepción grave, State Management instanciará un ejemplar de ara::sm::SmException indicando el correspondiente ara::core::ErrorCode [SWS_SM_81243].

Señalización de error mediante SmExceptionAplicaciónState ManagementSmExceptionEjecutar solicitud de estadoFehler identifizieren (ErrorCode)SmException(errorCode)Instanz bereitgestelltthrow SmExceptioncatch (const SmException&) y evaluar código de error

Diagrama de secuencias: señalización y tratamiento típicos de un error mediante SmException en State Management. Fuentes: [SWS_SM_81242], [SWS_SM_81243].

El componente que realiza la llamada captura la excepción lanzada en un bloque catch correspondiente. A través de los métodos heredados de la clase base ara::core::Exception, la aplicación puede inspeccionar el ara::core::ErrorCode encapsulado a fin de asociar semánticamente la causa del error e iniciar medidas específicas para subsanar el fallo o restablecer el estado del sistema.

Escenarios de error

La propia clase ara::sm::SmException no representa un elemento de operación propenso a errores, sino que es el objeto portador primario para situaciones excepcionales dentro de State Management [SWS_SM_81242]. La condición previa esencial para la creación es la puesta a disposición de un objeto ara::core::ErrorCode inicializado durante la invocación del constructor [SWS_SM_81243].

Si un ara::sm::SmException lanzado no es capturado por ningún manejador adecuado en la pila de llamadas, esto conduce según las reglas del estándar C++ a la invocación de std::terminate y, por ende, a la interrupción incontrolada del proceso afectado. En implementaciones que prescriben prescindir de excepciones en favor de ara::core::Result, se evita el lanzamiento; no obstante, si la vía de excepción se encuentra disponible, la encapsulación asegura que el código de error original se transporte sin alteraciones para el diagnóstico de fallos.

Esta guía de clase se basa en la especificación AUTOSAR Adaptive R25-11. Todas las indicaciones se fundamentan en los puntos de especificación referenciados.

Diagrama de clases 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

Constructores y destructor

SmException función

Construct a new StateManagement exception object containing an error code.

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

Documentación de los métodos

función 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#24dc80e8
Content hash
24dc80e8
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