Сигнализирует вышестоящим уровням Adaptive Platform об ошибках SecOC Freshness Value Manager.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 7ea457bda647ПроисхождениеОткрытые вопросы (2)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Сигнализирует вышестоящим уровням Adaptive Platform об ошибках SecOC Freshness Value Manager.
Класс apext::com::secoc::ComSecOcFvmException служит в модуле com специализированным классом исключений для сигнализации об ошибках, возникающих внутри SecOC Freshness Value Manager [SWS_CM_12512]. Он наследуется от ara::core::Exception и инстанцируется и генерируется Freshness Value Manager для структурированной передачи состояний ошибок вышестоящим коммуникационным уровням. Его конструктор обязательно принимает ara::core::ErrorCode и объявлен как noexcept, благодаря чему гарантируется безисключительное создание объекта ошибки без вторичных сбоев [SWS_CM_12513].
Контекст
Класс apext::com::secoc::ComSecOcFvmException представляет собой специализированный класс исключений AUTOSAR Adaptive Platform в модуле com[SWS_CM_12512]. Он в первую очередь служит для сигнализации о состояниях ошибок, возникающих внутри SecOC Freshness Value Manager (FVM) (AUTOSAR_AP_SWS_CommunicationManagement §C.2.4 «Class: ComSecOcFvmException»). Благодаря наследованию от стандартного базового класса ara::core::Exception класс ComSecOcFvmException встраивается в общую модель обработки ошибок Adaptive Platform и действует как стандартизированный носитель информации для исключительных ситуаций при защите коммуникации с помощью SecOC.
В качестве партнеров по взаимодействию в основном выступают три компонента: сам SecOC Freshness Value Manager, который генерирует исключение в случае ошибки, вызывающий функциональный уровень связи или приложение, обрабатывающее защищенные SecOC данные, а также домен ошибок FVM, подключаемый через заголовочный файл apext/com/secoc/fvm_error_domain.h[SWS_CM_12513]. Таким образом, данный класс представляет собой связующее звено между внутренними состояниями ошибок управления свежестью (freshness management) и вышестоящими программными уровнями.
Жизненный цикл
Инстанцирование ComSecOcFvmException выполняется по требованию именно тогда, когда при определении или проверке значений свежести (freshness values) обнаруживается неустранимая ошибка. Для этого класс предоставляет явный конструктор, принимающий ara::core::ErrorCode[SWS_CM_12513].
Этот конструктор объявлен как noexcept[SWS_CM_12513]. Это гарантирует, что создание объекта ни при каких обстоятельствах не завершится сбоем и не сгенерирует дальнейших исключений, благодаря чему соблюдается спецификация безопасности исключений (exception safe) [SWS_CM_12513]. Что касается жизненного цикла и отношений владения, исключение создается и выбрасывается по значению. На стороне получателя оно, вероятно, перехватывается как константная ссылка (const ComSecOcFvmException& или полиморфно как const ara::core::Exception&). Вопрос Q-d170140b08fe9ca0 (открытый)
Как только соответствующий блок обработки исключений (catch) завершает работу, экземпляр исключения автоматически уничтожается. Что касается параллелизма, экземпляры исключения, вероятно, обрабатываются локально для потока в контексте исключения соответствующего потока. Вопрос Q-bd368a082b887d14 (открытый)
Путь использования
Типичный путь использования простирается от обнаружения ошибки свежести до целенаправленной реакции со стороны вышестоящего уровня связи.
Сначала модуль связи или приложение в рамках обработки SecOC запрашивает значение свежести у Freshness Value Manager или передает его для валидации. Если эта операция завершается сбоем — например, из-за проблем синхронизации или недействительных значений счетчика, — Freshness Value Manager инстанцирует класс исключения ComSecOcFvmException, передавая конкретный код ошибки [SWS_CM_12513]. Непосредственно после конструирования исключение выбрасывается. Вызывающая сторона перехватывает исключение в подходящем обработчике и может запросить содержащийся ara::core::ErrorCode, чтобы надлежащим образом отреагировать на нарушение безопасности связи [SWS_CM_12512].
Сценарии ошибок
Поскольку ComSecOcFvmException сам по себе является транспортом для сигнализации об ошибках, сценарии ошибок сосредоточены на семантическом содержимом инкапсулированного кода ошибки. Для создания класса обязательно требуется ara::core::ErrorCode[SWS_CM_12513]. Соответствие заголовочного файла apext/com/secoc/fvm_error_domain.h подтверждает, что эти коды ошибок происходят из выделенного домена ошибок FVM [SWS_CM_12513].
Важнейшим предусловием для создания является предоставление инициализированного кода ошибки вызывающим контекстом. В качестве постусловия результирующий объект содержит полную информацию об ошибке соответствующего домена ошибок. Критический сценарий возникновения вторичного исключения во время создания объекта исключения исключается благодаря гарантии noexcept конструктора [SWS_CM_12513]. Это надежно предотвращает преждевременное аварийное завершение процесса через std::terminate вследствие сбоя в тракте обработки ошибок.
Данное руководство основано на спецификации AUTOSAR Adaptive R25-11 и обобщает требования к ComSecOcFvmException.
UML-диаграмма классов
Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.
gemini-3.8-flash-low· 2026-10-13 · Немецкий оригинал