上下文
类 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 保护数据的功能通信层或应用程序,以及通过头文件 apext/com/secoc/fvm_error_domain.h 包含的 FVM 错误域 [SWS_CM_12513]。因此,该类构成了新鲜度管理的内部错误状态与上层软件层之间的纽带。
生命周期
ComSecOcFvmException 的实例化是按需进行的,恰好在确定或检查新鲜度值期间检测到不可恢复错误时发生。为此,该类提供了一个显式构造函数,用于接收 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 (未决)
使用路径
典型的使用路径涵盖从检测到新鲜度错误到上层通信层进行针对性响应的整个过程。
时序图:Freshness Value Manager 使用 ComSecOcFvmException 进行异常处理的流程。来源:[SWS_CM_12512]、[SWS_CM_12513]、AUTOSAR_AP_SWS_CommunicationManagement §C.2.4
首先,通信模块或应用程序在 SecOC 处理过程中向 Freshness Value Manager 请求新鲜度值,或者传递该值以进行验证。如果此操作失败(例如由于同步问题或计数器值无效),Freshness Value Manager 将通过传递具体错误代码 [SWS_CM_12513] 来实例化异常类 ComSecOcFvmException。构造完成后立即抛出异常。调用方在相应的处理程序中捕获该异常,并可以查询所包含的 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 提前中止。
gemini-3.8-flash-low· 2026-10-13 · 德文原文