Определяет домен ошибок SecOC-FVM и сопоставляет специфические коды ошибок с текстами сообщений, а также исключениями.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 815063923fbeПроисхождениеОткрытые вопросы (2)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Определяет домен ошибок SecOC-FVM и сопоставляет специфические коды ошибок с текстами сообщений, а также исключениями.
Класс apext::com::secoc::ComSecOcFvmErrorDomain инкапсулирует домен ошибок для Freshness Value Manager в коммуникационном модуле SecOC платформы AUTOSAR Adaptive [SWS_CM_12514]. Он сопоставляет кодам ошибок из ComSecOcFvmErrc описательные тексты и обеспечивает их преобразование в исключения ComSecOcFvmException. Доступ обычно осуществляется в масштабе всего процесса через вспомогательную функцию GetComSecOcFvmErrorDomain()[SWS_CM_12521]. Если исключения компилятора отключены, метод генерации исключений автоматически исключается из разрешения перегрузок.
Контекст
Класс apext::com::secoc::ComSecOcFvmErrorDomain определяет домен ошибок для Freshness Value Manager (FVM) в рамках защищенной бортовой коммуникации (SecOC) для управления коммуникациями Adaptive AUTOSAR [SWS_CM_12514] (AUTOSAR_AP_SWS_CommunicationManagement §C.2.3 «Class: ComSecOcFvmErrorDomain»). Являясь финальным подклассом ara::core::ErrorDomain, он интегрирует специфичные для предметной области состояния ошибок FVM в общеплатформенную модель обработки ошибок AUTOSAR Adaptive.
Создание экземпляра ComSecOcFvmErrorDomain осуществляется через конструктор по умолчанию без параметров [SWS_CM_12517]. Благодаря объявлению как constexpr и noexcept гарантируется, что инстанциирование может происходить уже во время компиляции без риска выделения памяти и является полностью безопасным по отношению к исключениям.
В процессе работы домен ошибок обычно функционирует как долгоживущий, неизменяемый синглтон в процессе (интерпретация). Вопрос Q-fc901552d01e33de (открытый) Компоненты приложения и промежуточного программного обеспечения, как правило, не инстанциируют домен локально, а используют константную ссылку, предоставляемую через GetComSecOcFvmErrorDomain()[SWS_CM_12521]. Поскольку функции-члены Name()[SWS_CM_12518] и Message()[SWS_CM_12519] не сохраняют состояние и определены как const noexcept, параллельный доступ на чтение из нескольких потоков безопасен без дополнительных механизмов синхронизации.
Путь использования
При возникновении ошибки во Freshness Value Manager вызывающие стороны взаимодействуют с доменом ошибок в фиксированной последовательности:
Получение ссылки: компонент получает глобальную ссылку на домен с помощью GetComSecOcFvmErrorDomain()[SWS_CM_12521].
Идентификация домена: с помощью Name() в целях логирования или диагностики можно запросить жестко назначенный идентификатор домена ошибок [SWS_CM_12518].
Разрешение сообщения об ошибке: на основе переданного кода ошибки (CodeType) Message() возвращает указатель на статическое, понятное человеку описание ошибки [SWS_CM_12519].
Вызов исключения: если ветвь ошибки должна обрабатываться на основе исключений, ThrowAsException() преобразует объект ara::core::ErrorCode в соответствующее исключение [SWS_CM_12520].
Диаграмма последовательности: типичный запрос текстов ошибок или генерация исключения через ComSecOcFvmErrorDomain. Источники: [SWS_CM_12519], [SWS_CM_12520], [SWS_CM_12521]
Сценарии ошибок
Функции Name()[SWS_CM_12518] и Message()[SWS_CM_12519] обладают безопасностью исключений noexcept и ни при каких обстоятельствах не выбрасывают исключения. При неизвестных числовых кодах ошибок Message(), предположительно, возвращает стандартную строку общего вида (интерпретация). Вопрос Q-4f9834f33957160b (открытый)
Напротив, метод ThrowAsException() по определению не является безопасным по отношению к исключениям (not exception safe), поскольку его явная задача состоит в том, чтобы сконструировать и выбросить объект ComSecOcFvmException на основе переданного ara::core::ErrorCode[SWS_CM_12520]. Важным предварительным условием является конфигурация тулчейна: если исключения C++ отключены в компиляторе, ThrowAsException() не участвует в разрешении перегрузок [SWS_CM_12520]. Вызывающие стороны в средах выполнения без исключений, следовательно, должны реализовывать обработку ошибок через ara::core::Result или непосредственный анализ кодов ошибок.
Данное руководство было сгенерировано системой ИИ на основе спецификации AUTOSAR Adaptive R25-11.
Creates a new instance of apext::com::secoc::ComSecOcFvmException 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.
Returns a string constant associated with the apext::com::secoc:: ComSecOcFvmErrorDomain
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: c28253f0fde1ПроисхождениеОткрытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Функция-член Name() класса домена ошибок apext::com::secoc::ComSecOcFvmErrorDomain возвращает строковую константу, представляющую идентификатор этого домена ошибок [SWS_CM_12518]. Объявление предоставляется через заголовочный файл #include "apext/com/secoc/fvm_error_domain.h"[SWS_CM_12518]. Функция работает чисто синхронно, не принимает параметров и возвращает указатель на неизменяемую строку типа const char *[SWS_CM_12518].
В отношении обработки ошибок интерфейс специфицирован как exception safe и снабжен идентификатором C++ noexcept[SWS_CM_12518]. Таким образом, вызов не может завершиться сбоем и не генерирует исключений C++. Специфические коды ошибок, описания обратной связи или сообщения в DET либо DEM для этой функции запроса отсутствуют.
Поскольку речь идет о считывающем методе const, возвращающем константный указатель на статическую строку, выполнение, предположительно, является реентерабельным и потокобезопасным. Вопрос Q-75fa65f59869d0ab (открытый) Ограничивающие условия порядка для контекста вызова отсутствуют.
Creates a new instance of apext::com::secoc::ComSecOcFvmException 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 · Температура: не регулируется · Промпт: ce36f40333e6Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Использование
Функция-член ThrowAsException домена ошибок apext::com::secoc::ComSecOcFvmErrorDomain (SWS Communication Management §C.2.3.2.2.3 «ThrowAsException», [SWS_CM_12520]) служит для преобразования кода ошибки в исключение C++. В качестве входного параметра она принимает ссылку на код ошибки errorCode типа const ara::core::ErrorCode& и не имеет возвращаемого значения. Функция создает новый экземпляр apext::com::secoc::ComSecOcFvmException на основе переданного кода ошибки и синхронно генерирует его ([SWS_CM_12520]).
Обработка ошибок и безопасность исключений
Метод объявлен с noexcept(false) и по спецификации классифицирован как небезопасный относительно исключений (not exception safe) ([SWS_CM_12520]). Штатная модель выполнения предусматривает, что функция не выполняет нормальный возврат, а в случае ошибки непосредственно сообщает вызывающей стороне созданное исключение apext::com::secoc::ComSecOcFvmException.
ограничения
Для функции действует существенное ограничение касательно конфигурации компилятора: если исключения C++ отключены в тулчейне компилятора, ThrowAsException согласно [SWS_CORE_10304] не участвует в разрешении перегрузок ([SWS_CM_12520]).
gemini-3.8-flash-low· 2026-10-13 · Немецкий оригинал