Служит специфическим исключением C++ для сигнализации об ошибках интерфейсов сквозной защиты (End-to-End) вместе с кодом ошибки.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 385c2dd6528bПроисхождениеОткрытые вопросы (2)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Служит специфическим исключением C++ для сигнализации об ошибках интерфейсов сквозной защиты (End-to-End) вместе с кодом ошибки.
Класс ara::com::e2e::ComE2EException служит стандартизированным исключением C++ для передачи сообщений об ошибках из API E2E управления коммуникацией ([SWS_CM_12501]). Он наследует от ara::core::Exception и инкапсулирует специфический ara::core::ErrorCode, который передается при создании экземпляра через безопасный относительно исключений конструктор noexcept ([SWS_CM_12502]). Если исключения C++ отключены в наборе инструментов компилятора, генерирующая функция согласно спецификации не участвует в разрешении перегрузок, поэтому этот путь обработки ошибок предполагает активную поддержку исключений.
В рамках функциональной архитектуры AUTOSAR Adaptive ComE2EException выступает коммуникационным мостом между процедурами контроля E2E платформы и вызывающим прикладным программным обеспечением. Если функция E2E при проверке или обработке данных обнаруживает состояние ошибки, эта ошибка передается в вышестоящий поток управления посредством генерации данного исключения (AUTOSAR_AP_SWS_CommunicationManagement §8.15.4 «Class: ComE2EException»).
Жизненный цикл
Создание экземпляра объекта ComE2EException выполняется явно путем передачи кода ошибки в конструктор explicit ComE2EException(ara::core::ErrorCode errorCode) noexcept ([SWS_CM_12502], AUTOSAR_AP_SWS_CommunicationManagement §8.15.4.1.1.1 «ComE2EException»). Конструктор специфицирован как noexcept и безопасный относительно исключений (exception safe) ([SWS_CM_12502]). Благодаря этому гарантируется, что при конструировании самого исключения не могут быть сгенерированы другие исключения, что обеспечивает надежность на пути обработки ошибок.
Что касается владения, исключение создается генерирующим интерфейсом E2E и выбрасывается по значению (AUTOSAR_AP_SWS_CommunicationManagement §8.15.4 «Class: ComE2EException»). На стороне приложения объект обычно перехватывается как константная ссылка. При выходе из соответствующего блока обработки происходит автоматическое уничтожение в рамках стандартной раскрутки стека C++. Поскольку класс определен как final, подклассы не предусмотрены.
Путь использования
Типичный процесс при использовании исключения делится на следующие фазы:
Прикладное программное обеспечение вызывает защищенную с помощью E2E функцию управления коммуникацией.
Приложение перехватывает исключение в блоке try-catch. Вызывающие стороны при этом, вероятно (интерпретация), обращаются к унаследованным базовым методам ara::core::Exception, чтобы проанализировать содержащийся ara::core::ErrorCode для диагностики ошибок. Вопрос Q-8dfac2428f223afe (открытый)
Для использования ComE2EException действует существенное предварительное условие, касающееся цепочки инструментов: согласно [SWS_CORE_10304], функция, создающая и генерирующая экземпляр, не участвует в разрешении перегрузки (overload resolution), если в компиляторе отключены исключения C++ (AUTOSAR_AP_SWS_CommunicationManagement §8.15.4 «Class: ComE2EException»). Таким образом, в средах выполнения без поддержки исключений C++ данный сигнальный путь отсутствует; в этом случае ошибки, вероятно (интерпретация), передаются через альтернативные механизмы обработки ошибок платформы, не основанные на исключениях. Вопрос Q-e1b3f4f1dfc191ef (открытый)
Если исключения включены, каждое исключение ComE2EException в обязательном порядке передает код ошибки ([SWS_CM_12502]). В качестве предварительного условия для инстанцирования должен быть доступен действительный ara::core::ErrorCode ([SWS_CM_12502]). Поскольку конструктор объявлен как безопасный относительно исключений ([SWS_CM_12502]), создание объекта само по себе не может завершиться сбоем даже в случае ошибки.
Настоящее руководство основано на спецификации AUTOSAR R25-11 и сформировано автоматически.
UML-диаграмма классов
Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.
gemini-3.8-flash-low· 2026-10-13 · Немецкий оригинал