DEENESPTFRRUARHIKOZHNL

类 ara::core::FutureException

[SWS_CORE_00411] Upstream: RS_AP_00130

class FutureException :           public Exception {...};

Exception type thrown by ara::core::Future and ara::core::Promise

Header-Datei#include "ara/core/future_error_domain.h"
Forwarding-Header#include "ara/core/core_fwd.h"
Scopenamespace ara::core
Basisklasse(n)Exception

用户指南人工智能生成

用作 Future 和 Promise 异步操作中错误的异常类型,并封装错误码。
AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 4af39887de1d 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

用作 Future 和 Promise 异步操作中错误的异常类型,并封装错误码。

类 ara::core::FutureException 用作在与 ara::core::Future 和 ara::core::Promise 相关的错误发生时抛出的特定异常类型 [SWS_CORE_00412]。它封装了一个 ara::core::ErrorCode,并通过显式构造函数创建 [SWS_CORE_00412]。为了在异步和并发环境中安全使用,其实例化被指定为 noexcept、线程安全且异常安全 [SWS_CORE_00412]。

上下文

类 ara::core::FutureException 在模块 core 内充当异步通信和同步原语的专用异常类型。根据其设计目的,该异常类型由 ara::core::Future 以及 ara::core::Promise 触发,以便向调用者指示异步操作上下文中的错误状态。在结构上,ara::core::FutureException 继承自基类 Exception 并封装了一个领域特定的错误码。

在协作场景中,ara::core::FutureException 构成了生成异步端点(如 ara::core::Promise)、消费端点(ara::core::Future)与应用端错误处理之间的桥梁。这三方的相互作用阐明了传递异常以进行错误处理的结构框架。

FutureExceptionKontext Promise ara::core::Promise Exception ara::core::FutureException Promise->Exception 触发 / 设置 Future ara::core::Future Future->Exception 出错时抛出 AppThread Anwendungs-Thread Future->AppThread benachrichtigt Exception->AppThread 被捕获于

上下文图:ara::core::FutureException 在 Promise、Future 与应用线程之间的嵌入。来源:[SWS_CORE_00412]

生命周期

ara::core::FutureException 的实例化显式通过构造函数进行,并传入 ara::core::ErrorCode 类型的错误码 [SWS_CORE_00412]。通过带有 explicit 的声明,阻止了从 ara::core::ErrorCode 的隐式类型转换。该构造函数被标明为 noexcept,从而确保构造本身不会抛出进一步的异常 [SWS_CORE_00412]。

关于执行安全性,该类被规范为异常安全(exception safe)[SWS_CORE_00412]。针对并发运行,规范还将该构造显式标明为线程安全(thread-safe)[SWS_CORE_00412]。这使得异步操作能够跨线程边界安全地实例化异常并将其传递给等待的接收者。

使用路径

典型使用流程包括异步操作期间错误的产生直至消费方调用者捕获异常。通常通过头文件 ara/core/future_error_domain.h [SWS_CORE_00412] 提供。

通过 ara::core::FutureException 进行错误信号通知Erzeuger (Promise)Vermittler (Future)接收方(线程)Use Case: 错误检测与实例化发生异步错误提供 ErrorCodeFehlerzustand setzenFutureException(err)Use Case: 检索与异常处理Ergebnis anfordernwirft FutureExceptioncatch (FutureException&)ErrorCode auswerten

时序图:从错误产生经由 ara::core::FutureException 实例化直至捕获的流程。来源:[SWS_CORE_00412]

使用流程分为以下步骤:

  • 检测与 ara::core::Promise 或 ara::core::Future 相关的异步处理中的失败或非法状态。
  • 通过构造函数指定具体的 ara::core::ErrorCode 来创建 ara::core::FutureException [SWS_CORE_00412]。
  • 将异常传递给消费线程,在该线程中于 try-catch 块的上下文中捕获该异常并分析所包含的错误。

错误场景

由于 ara::core::FutureException 本身即是错误信号传递的载体,因此错误场景仅限于其自身产生时的条件。通过构造函数带有 noexcept 标记,保证了在对象创建时不会发生次生异常形式的执行错误 [SWS_CORE_00412]。构造的前置条件是将有效的 ara::core::ErrorCode 类型对象作为参数传入 err [SWS_CORE_00412]。若在操作 ara::core::Future 或 ara::core::Promise 时发生错误,该异常用于将此错误码原样传递给上层调用的目的。

本指南基于 AUTOSAR Adaptive Platform R25-11。

UML 类图

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

G nara__core__FutureException511 FutureException + FutureException() nara__core__Exception792 Exception nara__core__FutureException511->nara__core__Exception792 nstd__exception10 std::exception nara__core__Exception792->nstd__exception10

构造函数和析构函数

Construct a new ara::core::FutureException from an ara::core::ErrorCode

explicit FutureException (ErrorCode err) noexcept;

方法文档

函数 FutureException [SWS_CORE_00412] Upstream: RS_AP_00130

explicit FutureException (ErrorCode err) noexcept;
Header-Datei#include "ara/core/future_error_domain.h"
Scopeclass ara::core::FutureException
Exception-Sicherheitexception safe
Thread-Sicherheitthread-safe

Parameter (in)

ParameterBeschreibung
errthe ara::core::ErrorCode

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

Record
AUTOSAR/AP/record/SWS_CORE_00412
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CORE_00412@rel:R25-11#db198811
Content hash
db198811
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Core.pdf#nameddest=SWS_CORE_00412
Status: valid/unmigrated Version: rel:R25-11#8d00af34 Versionshistorie & Revisions (1 transition, 8 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_CORE_00412@rel:R25-11#8d00af34
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#38add4ec2026-09-30
  • R19-11rel:R19-11#85d2e6d42026-10-14
  • R20-11rel:R20-11#0ed7c8232026-10-14
  • R21-11rel:R21-11#0ed7c8232026-10-14
  • R22-11rel:R22-11#f9ed1ff42026-10-14
  • R23-11rel:R23-11#3515d8022026-10-14
  • R24-11rel:R24-11#7b05c81d2026-10-14
  • R25-11rel:R25-11#8d00af342026-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