Служит типом исключения для ошибок при асинхронных операциях с Future и Promise и инкапсулирует код ошибки.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 4af39887de1dПроисхождениеОткрытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Служит типом исключения для ошибок при асинхронных операциях с Future и Promise и инкапсулирует код ошибки.
Класс ara::core::FutureException служит специфическим типом исключения, который генерируется при ошибках, связанных с ara::core::Future и ara::core::Promise[SWS_CORE_00412]. Он инкапсулирует ara::core::ErrorCode и создается через явный конструктор [SWS_CORE_00412]. Для безопасного применения в асинхронных и параллельных средах создание экземпляра специфицировано как noexcept, потокобезопасное и исключение-безопасное [SWS_CORE_00412].
Контекст
Класс ara::core::FutureException функционирует в рамках модуля core как специализированный тип исключения для примитивов асинхронной коммуникации и синхронизации. В соответствии со своим назначением этот тип исключения инициируется ara::core::Future, а также ara::core::Promise, чтобы сигнализировать вызывающей стороне о состояниях ошибок в контексте асинхронных операций. Структурно ara::core::FutureException наследует от базового класса Exception и инкапсулирует доменно-специфичный код ошибки.
В сценариях взаимодействия ara::core::FutureException формирует мост между создающей асинхронной конечной точкой (такой как ara::core::Promise), потребляющей конечной точкой (ara::core::Future) и обработкой ошибок на стороне приложения. Взаимодействие этих трех участников наглядно демонстрирует структурный каркас, в рамках которого исключение передается для обработки ошибок.
Контекстная диаграмма: встраивание ara::core::FutureException между Promise, Future и потоком приложения. Источники: [SWS_CORE_00412]
Жизненный цикл
Создание экземпляра ara::core::FutureException выполняется явно через конструктор с передачей кода ошибки типа ara::core::ErrorCode[SWS_CORE_00412]. Благодаря объявлению с explicit предотвращается неявное преобразование типов из ara::core::ErrorCode. Конструктор обозначен как noexcept, благодаря чему гарантируется, что само конструирование не может вызвать дальнейших исключений [SWS_CORE_00412].
Что касается безопасности выполнения, класс специфицирован как безопасный относительно исключений (exception safe) [SWS_CORE_00412]. Для параллельной работы спецификация также явно определяет конструирование как потокобезопасное (thread-safe) [SWS_CORE_00412]. Это позволяет асинхронным операциям безопасно создавать экземпляр исключения через границы потоков и передавать его ожидающим получателям.
Путь использования
Типичный процесс применения охватывает этапы от возникновения ошибки во время асинхронной операции до перехвата исключения потребляющей вызывающей стороной. Предоставление обычно осуществляется через заголовочный файл ara/core/future_error_domain.h[SWS_CORE_00412].
Диаграмма последовательности: процесс от возникновения ошибки через создание экземпляра ara::core::FutureException до перехвата. Источники: [SWS_CORE_00412]
Процесс использования делится на следующие шаги:
Обнаружение сбоя или недопустимого состояния при асинхронной обработке совместно с ara::core::Promise или ara::core::Future.
Создание ara::core::FutureException с помощью конструктора с указанием специфического ara::core::ErrorCode[SWS_CORE_00412].
Передача исключения потребляющему потоку, где оно перехватывается в рамках блока try-catch и содержащаяся ошибка анализируется.
Сценарии ошибок
Поскольку сам ara::core::FutureException представляет собой средство сигнализации об ошибках, сценарии сбоев ограничиваются условиями его собственного возникновения. Благодаря обозначению конструктора спецификатором noexcept гарантируется, что при создании объекта не может возникнуть ошибка выполнения в виде вторичного исключения [SWS_CORE_00412]. В качестве предусловия для конструирования выступает передача допустимого объекта типа ara::core::ErrorCode в качестве параметра err[SWS_CORE_00412]. Если при работе с ara::core::Future или ara::core::Promise возникает ошибка, исключение служит цели передачи этого кода ошибки вышестоящим вызовам без изменений.
Это руководство основано на AUTOSAR Adaptive Platform R25-11.
UML-диаграмма классов
Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.
gemini-3.8-flash-low· 2026-10-13 · Немецкий оригинал