DEENESPTFRRUARHIKOZHNL

класс ara::com::ComException

[SWS_CM_11327] Upstream: RS_AP_00130, RS_AP_00122, RS_AP_00127

class ComException final :            public ara::core::Exception {...};

Defines a class for exceptions to be thrown by the API.

Header-Datei#include "ara/com/com_error_domain.h"
Forwarding-Header#include "ara/com/com_fwd.h"
Scopenamespace ara::com
Basisklasse(n)ara::core::Exception

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

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

Служит классом исключений API для инкапсуляции и передачи сообщений об ошибках управления коммуникацией через коды ошибок.

Класс ara::com::ComException служит в AUTOSAR Adaptive центральным классом исключений для сигнализации об ошибках при вызовах коммуникационного API [SWS_CM_11327]. Он инкапсулирует ara::core::ErrorCode, а также создается и генерируется при сбоях операций, причем его конструктор определен как безопасный относительно исключений и не генерирующий исключений [SWS_CM_11328]. Если исключения C++ отключены в наборе инструментов компилятора, соответствующие генерирующие исключения перегрузки API полностью исключаются из разрешения перегрузок. Вызывающие стороны перехватывают объект исключения, чтобы проанализировать содержащийся в нем код ошибки и инициировать меры по обработке ошибок.

Контекст

Класс ara::com::ComException служит в модуле com AUTOSAR Adaptive Platform специализированным классом исключений для сигнализации об ошибках при вызовах коммуникационного API [SWS_CM_11327]. Он открыто наследует от базового класса ara::core::Exception и объявлен как final. Это подчеркивает прямую интеграцию в общую архитектуру обработки ошибок Adaptive Platform. За счет маркировки final класс, вероятно, спроектирован как финальный тип исключения, не предназначенный для дальнейшей иерархии наследования. Вопрос Q-2454b5b73295287b (открытый)

Основная задача ara::com::ComException заключается в инкапсуляции возникшего ошибочного состояния в виде ara::core::ErrorCode и его передаче вызывающим уровням через механизм исключений C++ [SWS_CM_11328]. Объявление и определение предоставляются через заголовок #include "ara/com/com_error_domain.h" [SWS_CM_11328]. В качестве центральных партнеров по взаимодействию выступают использующее прикладное программное обеспечение, внутренние сервисные функции и функции API управления коммуникацией, а также типы домена ошибок ara::core::ErrorCode.

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

Жизненный цикл объекта ara::com::ComException начинается в реализации функции API управления коммуникацией, как только операция завершается сбоем, после чего исключение инстанцируется и генерируется AUTOSAR_AP_SWS_CommunicationManagement §8.12.5 «Class: ComException». Создание выполняется через явный конструктор, принимающий объект ara::core::ErrorCode, вызвавший ошибку [SWS_CM_11328].

Этот конструктор объявлен с noexcept и обладает свойством exception safe [SWS_CM_11328]. За счет этого гарантируется, что во время конструирования самого объекта исключения не могут возникнуть дополнительные исключения. После генерации с помощью throw объект передается в рамках раскрутки стека, пока не будет связан в подходящем блоке catch вызывающего уровня. Что касается владения, экземпляр автоматически уничтожается на стеке после выхода из блока обработки. Класс не содержит внутренних переходов состояний в смысле конечного автомата; его состояние остается неизменным после инициализации с кодом ошибки.

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

Типичный сценарий использования описывает последовательность обнаружения ошибки, генерации исключения и последующей обработки:

  1. Прикладная функция вызывает операцию интерфейса ara::com.
  2. Если во время обработки возникает ошибка, реализация API создает новый экземпляр ara::com::ComException из соответствующего errorCode и генерирует его AUTOSAR_AP_SWS_CommunicationManagement §8.12.5 «Class: ComException».
  3. Приложение перехватывает исключение в подходящем блоке. Перехват на стороне приложения, вероятно, выполняется по константной ссылке (const ara::com::ComException&) во избежание операций копирования. Вопрос Q-5270e026eeac8be7 (открытый)
  4. Через интерфейс базового класса вызывающая сторона обращается к содержащемуся ara::core::ErrorCode и выполняет диагностические или компенсационные действия [SWS_CM_11328].
Последовательность обработки исключений с ComExceptionПриложениеara::com-LaufzeitComExceptionвыполнить вызов API()Kommunikationsfehler erkanntComException(errorCode) instanziierenthrow ComExceptioncatch (const ara::com::ComException&) и анализ кода ошибки

Диаграмма последовательности: процесс обнаружения ошибки, создания экземпляра и обработки ara::com::ComException. Источники: [SWS_CM_11327], [SWS_CM_11328], AUTOSAR_AP_SWS_CommunicationManagement §8.12.5 «Class: ComException»

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

В контексте обработки ошибок и конфигурации набора инструментов действуют следующие условия и граничные случаи:

  • Отключенные исключения C++: если исключения C++ отключены в наборе инструментов компилятора, функции API, создающие и генерирующие ara::com::ComException, согласно [SWS_CORE_10304] не участвуют в разрешении перегрузок AUTOSAR_AP_SWS_CommunicationManagement §8.12.5 «Class: ComException». В этом случае программное обеспечение обработки ошибок обращается к альтернативным механизмам возврата.
  • Типобезопасность конструктора: поскольку конструктор объявлен как explicit, неявные преобразования типов при передаче ara::core::ErrorCode предотвращаются [SWS_CM_11328].
  • Иерархический перехват: поскольку ara::com::ComException наследует от ara::core::Exception, вызывающие стороны могут обрабатывать исключения либо специфически как ara::com::ComException, либо обобщенно через обработчики для базового класса.

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

UML-диаграмма классов

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

G nara__com__ComException152 ComException + ComException() nara__core__Exception792 Exception nara__com__ComException152->nara__core__Exception792 nstd__exception10 std::exception nara__core__Exception792->nstd__exception10

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

ComException функция

Constructs a new ara::com::ComException containing an ara::core::ErrorCode

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

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

функция ComException [SWS_CM_11328] Upstream: RS_AP_00120, RS_AP_00121, RS_AP_00130

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

Constructs a new ara::com::ComException containing an ara::core::ErrorCode

Header-Datei#include "ara/com/com_error_domain.h"
Scopeclass ara::com::ComException
Exception-Sicherheitexception 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_CM_11328
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CM_11328@rel:R25-11#22fb5814
Content hash
22fb5814
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_CommunicationManagement.pdf#nameddest=SWS_CM_11328
Status: valid/unmigrated Version: rel:R25-11#5e7d893a Versionshistorie & Revisions (1 transition, 7 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_CM_11328@rel:R25-11#5e7d893a
Point-in-Time History:
Recorded Revisions (7):
  • R25-11rel:R25-11#ffcd75022026-09-30
  • R20-11rel:R20-11#4a6338102026-10-14
  • R21-11rel:R21-11#4a6338102026-10-14
  • R22-11rel:R22-11#17139dec2026-10-14
  • R23-11rel:R23-11#41e9e0262026-10-14
  • R24-11rel:R24-11#94963f6e2026-10-14
  • R25-11rel:R25-11#5e7d893a2026-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