DEENESPTFRRUARHIKOZHNL

класс 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

Руководство пользователяСОЗДАНО ИИ

Инкапсулирует коды ошибок State Management для передачи и обработки критических функциональных сбоев в виде исключения C++.
СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 72647117def3 Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Инкапсулирует коды ошибок State Management для передачи и обработки критических функциональных сбоев в виде исключения C++.

Класс ara::sm::SmException служит для передачи исключительных ситуаций, возникающих при операциях State Management [SWS_SM_81242]. Он является производным от ara::core::Exception и инкапсулирует специфический ara::core::ErrorCode для точной идентификации возникшей причины ошибки. Его создание осуществляется через явный конструктор, который специфицирован как потокобезопасный и безопасный относительно исключений [SWS_SM_81243]. Вызывающие приложения структурированно перехватывают объект, чтобы проанализировать содержащийся код ошибки и инициировать соответствующие меры по восстановлению.

Контекст

Класс ara::sm::SmException функционирует как центральное исключение для функционального кластера State Management в AUTOSAR Adaptive Platform [SWS_SM_81242]. Он определен в заголовочном файле ara/sm/sm_error_domain.h и открыто наследуется от фундаментального базового класса исключений платформы ara::core::Exception AUTOSAR_AP_SWS_StateManagement §8.1.4 «Class: SmException». Внутри документа спецификация класса приводится со статусом DRAFT [SWS_SM_81242].

В архитектурном контексте класс объединяет три центральные роли: State Management как инициирующую инстанцию при сбоях операций над состоянием, вызывающее приложение Adaptive в качестве обработчика и базовую инфраструктуру ara::core, предоставляющую общий интерфейс для обработки ошибок. Являясь носителем ошибочных состояний, он служит для синхронной передачи ошибочных ситуаций из модуля sm вышестоящим контролирующим инстанциям через механизм исключений C++.

Жизненный цикл

Инстанцирование ara::sm::SmException осуществляется явно через конструктор SmException(ara::core::ErrorCode errorCode) [SWS_SM_81243]. Этот конструктор объявлен как noexcept и обладает свойствами как безопасности относительно исключений (exception safe), так и потокобезопасности (thread-safe) AUTOSAR_AP_SWS_StateManagement §8.1.4.1.1.1 «SmException». Благодаря этому гарантируется, что само создание объекта исключения не завершится сбоем и не вызовет дальнейших исключений, даже если оно создается в параллельных контекстах исполнения.

После создания экземпляр обычно генерируется по значению (by value) и перехватывается в вызывающем контексте как ссылка на константные объекты (const ara::sm::SmException& или полиморфно как const ara::core::Exception&). Поскольку спецификация не задает специальных деструкторов или ручных процедур очистки, уничтожение объекта исключения, согласно интерпретации, полностью следует стандартной семантике C++ и механизмам базового класса ara::core::Exception, как только осуществляется выход из соответствующего блока обработки. Вопрос Q-85b1fd2f6082db8e (открытый)

Путь использования

Типичный сценарий начинается с компонента приложения или платформы, который направляет запрос на управление состоянием в State Management. Если запрошенное изменение состояния не может быть выполнено внутренне или возникла тяжелая исключительная ошибка, State Management инстанцирует экземпляр ara::sm::SmException с указанием соответствующего ara::core::ErrorCode [SWS_SM_81243].

Сигнализация об ошибке через SmExceptionПриложениеState ManagementSmExceptionВыполнить запрос состоянияFehler identifizieren (ErrorCode)SmException(errorCode)Instanz bereitgestelltthrow SmExceptioncatch (const SmException&) и анализ кода ошибки

Диаграмма последовательности: типичная сигнализация и обработка ошибки с помощью SmException в State Management. Источники: [SWS_SM_81242], [SWS_SM_81243].

Вызывающий компонент перехватывает сгенерированное исключение в соответствующем блоке catch. С помощью методов, унаследованных от базового класса ara::core::Exception, приложение может проверить инкапсулированный ara::core::ErrorCode, чтобы семантически сопоставить причину ошибки и предпринять целенаправленные меры по ее устранению или восстановлению состояния системы.

Сценарии ошибок

Класс ara::sm::SmException сам по себе не представляет собой подверженный ошибкам операционный элемент, а является первичным объектом-носителем исключительных ситуаций в State Management [SWS_SM_81242]. Важным предварительным условием для создания является предоставление инициализированного объекта ara::core::ErrorCode при вызове конструктора [SWS_SM_81243].

Если выброшенное исключение ara::sm::SmException не перехватывается ни одним подходящим обработчиком в стеке вызовов, это, согласно стандартным правилам C++, приводит к вызову std::terminate и тем самым к неконтролируемому аварийному завершению затронутого процесса. В реализациях, предписывающих отказ от исключений в пользу ara::core::Result, выброс исключения предотвращается; однако если путь исключений доступен, инкапсуляция обеспечивает передачу исходного кода ошибки для диагностики без искажений.

Данное руководство по классу основано на спецификации AUTOSAR Adaptive R25-11. Все сведения опираются на указанные пункты спецификации.

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

Конструкторы и деструктор

SmException функция

Construct a new StateManagement exception object containing an error code.

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

Документация методов

функция 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#be9b823e
Content hash
be9b823e
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