Определяет домен ошибок для ошибок проверки сквозной защиты (End-to-End) в коммуникации Adaptive.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: bfe73c7b7e47ПроисхождениеОткрытые вопросы (2)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Определяет домен ошибок для ошибок проверки сквозной защиты (End-to-End) в коммуникации Adaptive.
Класс ara::com::e2e::ComE2EErrorDomain определяет домен ошибок для ошибок сквозной защиты End-to-End в управлении коммуникацией AUTOSAR Adaptive и сопоставляет коды ошибок перечислению ComE2EErrc ([SWS_CM_12504]). Если проверка E2E на стороне сервера завершается сбоем, в ответе об ошибке передается ara::core::ErrorCode этого домена, который предоставляется на стороне клиента через ara::core::Result ([SWS_CM_00033]). Не имеющий состояния, безопасный с точки зрения исключений класс позволяет обрабатывать ошибки либо на основе значений, либо через ThrowAsException(), при этом данный метод исключений недоступен при отключенных исключениях компилятора C++ ([SWS_CM_12509]).
Контекст
Класс ara::com::e2e::ComE2EErrorDomain определяет домен ошибок для сквозной защиты (E2E) в рамках управления коммуникацией (ara::com) платформы AUTOSAR Adaptive Platform. Он является финальным наследником базового класса ara::core::ErrorDomain и инкапсулирует специфичные для домена ошибки, возникающие при E2E-валидации сообщений.
В коммуникационной модели ComE2EErrorDomain выступает в качестве центрального идентификатора и транслятора для состояний ошибок при взаимодействиях, защищенных E2E. С помощью псевдонимов типов Errc ([SWS_CM_12504]) и Exception ([SWS_CM_12505]) домен ошибок привязывает типоспецифичное перечисление ComE2EErrc, а также производный тип исключения ComE2EException к экосистеме обработки ошибок ara::core. Если среда выполнения сервера при проверке запроса метода с помощью E2E_check ([SWS_CM_90421]) обнаруживает некорректную защиту, передается ответ об ошибке E2E. Согласно [SWS_CM_00033], полезная нагрузка этого ответного сообщения переносит ara::core::ErrorCode домена ara::com::e2e::ComE2EErrorDomain, значение ошибки которого соответствует результату E2E_check (AUTOSAR_AP_SWS_CommunicationManagement §7.4.1.2.4 «Payload of the E2E Error Response»). На стороне клиента эта ошибка десериализуется ([SWS_CM_90476], [SWS_CM_10473]) после удаления заголовка E2E ([SWS_CM_90475]) и передается приложению как состояние ошибки внутри ara::core::Result (AUTOSAR_AP_SWS_CommunicationManagement §7.4.1.2.5 «Deserializing the payload»).
Создание объекта экземпляра выполняется через конструктор по умолчанию constexpr ComE2EErrorDomain() noexcept ([SWS_CM_12506]). Благодаря обозначению как constexpr домен ошибок может конструироваться уже во время компиляции. Как правило, он должен предоставляться как неизменяемый общепроцессный синглтон, благодаря чему ссылки на домен остаются действительными на протяжении всего времени выполнения программы. Вопрос Q-bd1ba0230650e246 (открытый) Поскольку класс объявлен как final, дальнейшие наследования недопустимы.
Класс не управляет изменяемым состоянием и обеспечивает полную безопасность исключений ([SWS_CM_12506]). Методы инспекции Name() ([SWS_CM_12507]) и Message() ([SWS_CM_12508]) объявлены как const и noexcept. За счет этого параллельный доступ только для чтения из нескольких потоков выполнения гарантированно потокобезопасен и не требует затрат на синхронизацию.
Путь использования
Типичный сценарий использования реализуется в рамках передачи и клиентской обработки результатов неудавшихся проверок E2E:
Проверка и создание ошибки: при получении защищенного E2E запроса сервер выполняет валидацию с помощью E2E_check ([SWS_CM_90421]). Если эта проверка завершается неудачно, промежуточное ПО сериализует ответ об ошибке, полезная нагрузка которого содержит ara::core::ErrorCode с ara::com::e2e::ComE2EErrorDomain ([SWS_CM_00033]).
Диагностика ошибок: Adaptive Application проверяет ara::core::Result. Для протоколирования ошибок Name() возвращает идентификатор домена ([SWS_CM_12507]), в то время как Message() возвращает понятный человеку текст для конкретного числового кода ([SWS_CM_12508]).
Обработка ошибок: приложение может либо обработать ошибку на основе значений, либо при включенной обработке исключений сгенерировать типоспецифичное исключение через ThrowAsException() ([SWS_CM_12509]).
Если при валидации возникает ошибка E2E, она идентифицируется с помощью перечисления ComE2EErrc, доступного через псевдоним типа Errc класса ([SWS_CM_12504]). Коды ошибок в ComE2EErrc при этом, вероятно, напрямую соответствуют определенным результирующим значениям E2E_check. Вопрос Q-07fc2c01567ac537 (открытый)
Для передачи ошибки через исключения C++ метод ThrowAsException() инстанцирует исключение типа ara::com::e2e::ComE2EException (псевдоним Exception, [SWS_CM_12505]) и генерирует его ([SWS_CM_12509]). Метод объявлен как noexcept(false). Если исключения C++ отключены в инструментарии компилятора, ThrowAsException() согласно [SWS_CM_12509] не участвует в разрешении перегрузок. В системах без поддержки исключений обработка ошибок обязательно должна выполняться путем проверки значений ara::core::Result и ara::core::ErrorCode.
Настоящее руководство основано на спецификации AUTOSAR Adaptive R25-11 и создано автоматически.
Creates a new instance of ara::com::e2e::ComE2EException from errorCode and throws it. As per [SWS_CORE_10304], this function does not participate in overload resolution when C++ exceptions are disabled in the compiler toolchain.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: e33607e23f70ПроисхождениеОткрытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Функция-член Name класса ara::com::e2e::ComE2EErrorDomain ([SWS_CM_12507]) вызывается синхронно и без входных параметров. Она служит для однозначной идентификации домена ошибок и возвращает указатель на статическую строковую константу (const char *), представляющую имя домена ошибок коммуникации E2E ([SWS_CM_12507]). Объявление интерфейса предоставляется через заголовочный файл ara/com/e2e/e2e_error_domain.h ([SWS_CM_12507]).
В отношении обработки ошибок функция специфицирована как noexcept и exception safe ([SWS_CM_12507]). Соответственно, она не генерирует исключений и не завершается сбоем во время выполнения; специфические коды ошибок или механизмы обработки ошибок для этого вызова не предусмотрены.
Что касается параллелизма и граничных условий, специальные ограничения на вызовы или жизненный цикл отсутствуют. Поскольку метод лишь считывает неизменяемую строку, реализация, предположительно, полностью реентерабельна и безопасна для параллельных вызовов из произвольных потоков. Вопрос Q-c8158d40c80ce9c5 (открытый)
Creates a new instance of ara::com::e2e::ComE2EException from errorCode and throws it. As per [SWS_CORE_10304], this function does not participate in overload resolution when C++ exceptions are disabled in the compiler toolchain.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: d2262a26cd80ПроисхождениеОткрытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Функция-член ThrowAsException домена ошибок ara::com::e2e::ComE2EErrorDomain служит согласно [SWS_CM_12509] для того, чтобы инкапсулировать переданный код ошибки errorCode типа ara::core::ErrorCode в типизированное исключение C++ типа ara::com::e2e::ComE2EException и синхронно сгенерировать его. Функция не имеет возвращаемого значения (void) и предоставляется через заголовок ara/com/e2e/e2e_error_domain.h (AUTOSAR_AP_SWS_CommunicationManagement §8.15.3.2.2.3 «ThrowAsException»).
Обработка ошибок и граничные условия
Метод объявлен с noexcept(false) и явно специфицирован как небезопасный относительно исключений («not exception safe»), так как его штатный ход выполнения состоит в генерации исключения. Существенное граничное условие со стороны компилятора определяет [SWS_CORE_10304]: если исключения C++ отключены в тулчейне компилятора, эта функция не участвует в разрешении перегрузок. Поэтому вызывающие стороны должны убедиться, что обработка ошибок на основе исключений поддерживается и активна в целевой системе.
gemini-3.8-flash-low· 2026-10-13 · Немецкий оригинал