DEENESPTFRRUARHIKOZHNL

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

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

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

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

Класс ara::exec::ExecException служит финальным классом исключений Execution Management для инкапсуляции и сигнализации ошибок, специфичных для модуля, через механизм исключений C++. Экземпляры создаются и выбрасываются в случае ошибки с указанием ara::core::ErrorCode через потокобезопасный конструктор, после чего вызывающие компоненты перехватывают и анализируют их [SWS_EM_02283]. Фундаментальным граничным условием является то, что конструирование специфицировано как noexcept, благодаря чему создание объекта гарантированно остается безопасным относительно исключений [SWS_EM_02283]. Необработанных исключений следует избегать, так как они приводят к завершению работы системы.

Контекст

Класс ara::exec::ExecException представляет собой центральный класс исключений модуля Execution Management (exec) в рамках AUTOSAR Adaptive Platform. Согласно своей спецификации он служит инкапсуляцией для исключений, генерируемых Execution Management. В объявлении класса он определен как final с открытым наследованием от стандартного базового класса исключений ara::core::Exception, благодаря чему он бесшовно интегрируется в единую концепцию обработки исключений и ошибок Adaptive Platform. Идентификатор final исключает дальнейшую специализацию или создание подклассов.

Класс исключения объявляется в заголовочном файле #include "ara/exec/exec_error_domain.h" [SWS_EM_02283]. Основная функциональная ответственность ara::exec::ExecException заключается в передаче специфичных для модуля ошибочных состояний через механизм исключений C++. Интерпретация: выбрасывание этого исключения, вероятно, актуально прежде всего в средах выполнения, где состояния ошибок Execution Management распространяются не только через типы ошибок на основе значений, но и требуется синхронное прерывание потока управления через исключения C++. Вопрос Q-8faec8c282524965 (открытый)

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

Жизненный цикл экземпляра ara::exec::ExecException начинается с явного конструирования с передачей кода ошибки. Конструктор explicit ExecException(ara::core::ErrorCode errorCode) noexcept создает новый объект исключения, инкапсулирующий переданный код ошибки [SWS_EM_02283]. Маркировка как noexcept гарантирует, что создание объекта даже в контексте уже выполняющейся обработки ошибок гарантированно пройдет без сбоев и не вызовет каскадных вторичных ошибок [SWS_EM_02283].

В отношении безопасности выполнения конструирование явно классифицировано как безопасное относительно исключений («exception safe») и потокобезопасное («thread-safe») [SWS_EM_02283]. Это обеспечивает надежное создание экземпляров исключений из различных потоков без необходимости дополнительных механизмов синхронизации. После вызова через throw объект переходит под управление среды выполнения C++. Интерпретация: уничтожение объекта исключения происходит автоматически после выхода из обрабатывающего блока catch в процессе стандартной раскрутки стека, поэтому явное управление жизненным циклом со стороны вызывающего кода не требуется. Вопрос Q-ec22ad5f177555aa (открытый)

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

Типовой сценарий использования ara::exec::ExecException включает инстанцирование в случае ошибки внутри Execution Management, а также контролируемый перехват в контексте вызывающего приложения:

  • Идентификация ошибки и инстанцирование: при возникновении исключительной ситуации в Execution Management ее причина отображается в ara::core::ErrorCode соответствующего домена ошибок и используется для явной инициализации ara::exec::ExecException [SWS_EM_02283].
  • Сигнализация: Инициализированный экземпляр исключения выбрасывается, прерывая регулярный путь выполнения и инициируя развертывание стека.
  • Перехват: Вызывающие компоненты перехватывают объект исключения либо целенаправленно как const ara::exec::ExecException&, либо в более общем виде через полиморфный базовый класс const ara::core::Exception&.
  • Анализ: Интерпретация: поскольку объект был сконструирован с ara::core::ErrorCode [SWS_EM_02283] и наследует от ara::core::Exception, получатель, вероятно, извлекает содержащийся код ошибки через интерфейсы базового класса для выполнения модулеспецифичных мер по восстановлению или протоколированию. Вопрос Q-d4671c34f5aab6f9 (открытый)

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

Будучи специализированным классом исключений, ara::exec::ExecException спроектирован для отражения существующих ошибочных ситуаций без создания новых ошибок при собственном использовании. Для создания конструктор требует передачи ara::core::ErrorCode [SWS_EM_02283]. Поскольку конструктор объявлен как noexcept, исключены ошибки предусловий при инстанцировании, которые могли бы помешать созданию объекта исключения [SWS_EM_02283].

Существенный сценарий ошибки на системном уровне заключается в неполном перехвате выброшенных исключений. Если инициированное ara::exec::ExecException исключение остается необработанным по иерархии вызовов, срабатывает стандартная обработка времени выполнения C++, что обычно приводит к вызову std::terminate и тем самым к преждевременному аварийному завершению процесса. Взаимодействующие программные компоненты должны поэтому гарантировать, что вызовы потенциально выбрасывающих функций Execution Management защищены надлежащими блоками try-catch.

Настоящее руководство сгенерировано ИИ на основе спецификации AUTOSAR Adaptive Platform R25-11.

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

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

ExecException функция

Constructs a new ExecException object containing an error code.

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

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

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