DEENESPTFRRUARHIKOZHNL

类 ara::com::ComException

[SWS_CM_11327] Upstream: RS_AP_00130, RS_AP_00122, RS_AP_00127

class ComException final :            public ara::core::Exception {...};

Defines a class for exceptions to be thrown by the API.

Header-Datei#include "ara/com/com_error_domain.h"
Forwarding-Header#include "ara/com/com_fwd.h"
Scopenamespace ara::com
Basisklasse(n)ara::core::Exception

用户指南人工智能生成

用作通过错误码封装并报告通信管理错误的 API 异常类。
AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: becb2133e102 来源 未决问题(2)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

用作通过错误码封装并报告通信管理错误的 API 异常类。

类 ara::com::ComException 在 AUTOSAR Adaptive 中用作核心异常类,用于在调用通信 API 时发出错误信号 [SWS_CM_11327]。它封装了一个 ara::core::ErrorCode,在操作失败时被实例化并抛出,其构造函数被定义为异常安全且不抛出异常 [SWS_CM_11328]。如果在编译器工具链中禁用了 C++ 异常,则相应的抛出异常的 API 重载将完全从重载解析中排除。调用方捕获该异常对象以分析所包含的错误码并采取错误处理措施。

上下文

类 ara::com::ComException 在 AUTOSAR Adaptive Platform 的 com 模块中用作专用异常类,用于在调用通信 API 时发出错误信号 [SWS_CM_11327]。它公有继承自基类 ara::core::Exception 并被声明为 final。这表明其直接集成了 Adaptive Platform 的全局错误处理架构。通过标记为 final,推测该类被设计为密封异常类型,不用于进一步的派生层次结构。 问题 Q-2454b5b73295287b (未决)

ara::com::ComException 的主要任务是将发生的错误状态以 ara::core::ErrorCode 的形式进行封装,并通过 C++ 异常机制传递给调用层 [SWS_CM_11328]。声明和定义通过头文件 #include "ara/com/com_error_domain.h" 提供 [SWS_CM_11328]。核心交互伙伴包括使用它的应用软件、通信管理的内部服务与 API 函数以及错误域类型 ara::core::ErrorCode。

生命周期

ara::com::ComException 对象的生命周期始于通信管理 API 函数的实现中,一旦操作失败,便会实例化并触发该异常 AUTOSAR_AP_SWS_CommunicationManagement §8.12.5 “Class: ComException”。其创建通过显式构造函数进行,该构造函数接管触发异常的 ara::core::ErrorCode 对象 [SWS_CM_11328]。

该构造函数声明为 noexcept 并具有属性 exception safe [SWS_CM_11328]。这确保了在构造异常对象本身的过程中不会发生进一步的异常。通过 throw 抛出后,该对象在栈展开过程中传递,直到绑定在调用层的相应 catch 块中。关于所有权关系,实例在离开处理块后会自动在栈上销毁。该类不包含状态机意义上的内部状态转换;其状态在使用错误码初始化后保持不可变。

使用路径

典型使用路径描述了错误检测、异常触发及后续处理的流程:

  1. 应用函数调用 ara::com 接口的操作。
  2. 如果处理过程中发生错误,API 实现会从相应的 errorCode 创建 ara::com::ComException 的新实例并将其抛出 AUTOSAR_AP_SWS_CommunicationManagement §8.12.5 “Class: ComException”。
  3. 应用程序在相应的块中捕获异常。应用端推测通过常量引用(const ara::com::ComException&)进行捕获,以避免复制操作。 问题 Q-5270e026eeac8be7 (未决)
  4. 调用方通过基类接口访问所包含的 ara::core::ErrorCode,并执行诊断或补偿步骤 [SWS_CM_11328]。
使用 ComException 的异常处理流程应用ara::com-LaufzeitComException执行 API 调用()Kommunikationsfehler erkanntComException(errorCode) instanziierenthrow ComExceptioncatch (const ara::com::ComException&) 并求值错误代码

时序图:ara::com::ComException 的错误检测、实例化和处理流程。来源:[SWS_CM_11327],[SWS_CM_11328],AUTOSAR_AP_SWS_CommunicationManagement §8.12.5 “Class: ComException”

错误场景

在错误处理和工具链配置上下文中,以下条件和边界情况适用:

  • 已禁用 C++ 异常:如果编译器工具链中禁用了 C++ 异常,则根据 [SWS_CORE_10304],创建并抛出 ara::com::ComException 的 API 函数将不参与重载解析 AUTOSAR_AP_SWS_CommunicationManagement §8.12.5 “Class: ComException”。在这种情况下,执行错误处理的软件将改用备选返回机制。
  • 构造函数类型安全性:由于构造函数声明为 explicit,因此在传递 ara::core::ErrorCode 时会阻止隐式类型转换 [SWS_CM_11328]。
  • 分层捕获:由于 ara::com::ComException 继承自 ara::core::Exception,调用方既可以将其作为 ara::com::ComException 进行专门处理,也可以通过基类的处理器进行常规处理。

本指南基于 AUTOSAR Adaptive R25-11 规范。所有说明和引用均仅基于所提供的规范摘录。

UML 类图

Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.

G nara__com__ComException152 ComException + ComException() nara__core__Exception792 Exception nara__com__ComException152->nara__core__Exception792 nstd__exception10 std::exception nara__core__Exception792->nstd__exception10

构造函数和析构函数

Constructs a new ara::com::ComException containing an ara::core::ErrorCode

explicit ComException (ara::core::ErrorCode errorCode) noexcept;

方法文档

函数 ComException [SWS_CM_11328] Upstream: RS_AP_00120, RS_AP_00121, RS_AP_00130

explicit ComException (ara::core::ErrorCode errorCode) noexcept;

Constructs a new ara::com::ComException containing an ara::core::ErrorCode

Header-Datei#include "ara/com/com_error_domain.h"
Scopeclass ara::com::ComException
Exception-Sicherheitexception safe

Parameter (in)

ParameterBeschreibung
errorCodeThe error code.

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_CM_11328
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CM_11328@rel:R25-11#afb7ea48
Content hash
afb7ea48
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_CommunicationManagement.pdf#nameddest=SWS_CM_11328
Status: valid/unmigrated Version: rel:R25-11#5e7d893a Versionshistorie & Revisions (1 transition, 7 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_CM_11328@rel:R25-11#5e7d893a
Point-in-Time History:
Recorded Revisions (7):
  • R25-11rel:R25-11#ffcd75022026-09-30
  • R20-11rel:R20-11#4a6338102026-10-14
  • R21-11rel:R21-11#4a6338102026-10-14
  • R22-11rel:R22-11#17139dec2026-10-14
  • R23-11rel:R23-11#41e9e0262026-10-14
  • R24-11rel:R24-11#94963f6e2026-10-14
  • R25-11rel:R25-11#5e7d893a2026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill