DEENESPTFRRUARHIKOZHNL

类 ara::diag::DiagOfferException

[SWS_DM_00985] Upstream: RS_AP_00119

class DiagOfferException :           public ara::core::Exception {...};

Exception type thrown by Diag classes.

Header-Datei#include "ara/diag/diag_error_domain.h"
Forwarding-Header#include "ara/diag/diag_fwd.h"
Scopenamespace ara::diag
Basisklasse(n)ara::core::Exception

用户指南人工智能生成

用于在提供诊断服务时通过带有错误代码的异常来指示错误。
AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 3b24259852fb 来源 未决问题(3)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

用于在提供诊断服务时通过带有错误代码的异常来指示错误。

类 ara::diag::DiagOfferException 用作特定的 C++ 异常类型,由 AUTOSAR Adaptive Platform 的诊断类抛出以指示错误([SWS_DM_00985])。它派生自 ara::core::Exception,并通过 noexcept 构造函数在指定 ara::core::ErrorCode 的情况下以线程安全的方式进行实例化([SWS_DM_00986])。该异常推测主要在提供诊断服务失败时出现,并且必须由调用方应用程序捕获,以防止进程发生失控终止。 问题 (未决)

上下文

类 ara::diag::DiagOfferException 是 AUTOSAR Adaptive Platform 内诊断模块的核心异常类型([SWS_DM_00985]、SWS Diagnostics §8.11.6 “Class: DiagOfferException”)。根据其规范,它是由诊断类抛出的异常(“Exception type thrown by Diag classes”)。该类公有派生自基类 ara::core::Exception,并通过头文件 ara/diag/diag_error_domain.h 包含到应用程序中([SWS_DM_00986])。

主要交互对象包括诊断管理的功能类、AUTOSAR Adaptive 的底层错误架构(由 ara::core::ErrorCode 表示)以及提供诊断服务的应用软件。类名表明,该异常推测在相应 Diag 类提供或注册诊断服务失败时使用(解释)。 问题 Q-47046201c9fd38c3 (未决)

生命周期

ara::diag::DiagOfferException 的实例化通过其唯一指定的构造函数 explicit DiagOfferException(ara::core::ErrorCode err) noexcept 进行([SWS_DM_00986]、SWS Diagnostics §8.11.6.1.1.1 “DiagOfferException”)。在此过程中,异常直接与具体错误代码绑定。由于构造函数被声明为 noexcept,因此可以确保在创建异常对象本身时不会发生进一步的错误或递归异常([SWS_DM_00986])。

关于生命周期,该类遵循 C++ 异常处理的常规机制:它在运行环境的异常存储区中创建,通过调用栈传递,并在处理该异常的 catch 块执行完毕后自动释放。根据规范,其构造是线程安全且异常安全的([SWS_DM_00986])。异常对象在创建后不具有复杂的内部状态转换;推测它充当所传递错误代码的不可变传输载体(解释)。 问题 Q-09c6e0ad610717e9 (未决)

使用路径

使用 ara::diag::DiagOfferException 时的典型流程分为以下阶段:

  • 应用程序调用诊断类的方法以提供诊断服务或端口(Offer 操作)。
  • 诊断类在初始化或注册期间检测到错误条件,并实例化匹配的 ara::core::ErrorCode。
  • 诊断类通过传入该错误代码构造 ara::diag::DiagOfferException 的实例([SWS_DM_00986])并抛出该异常。
  • 调用方应用程序软件在 try-catch 块中捕获该异常。
  • 调用方从异常中提取错误代码并启动适当的故障应对或重试策略。
通过 DiagOfferException 处理提供失败时的错误应用Diag-KlasseDiagOfferExceptionDienst anbieten (Offer)Fehler festgestellt: ErrorCode erzeugenDiagOfferException(err)throw DiagOfferExceptioncatch (const DiagOfferException& e)评估并处理 ErrorCode

时序图:通过 DiagOfferException 指示和处理错误的典型流程。来源:[SWS_DM_00985]、[SWS_DM_00986]。

错误场景

ara::diag::DiagOfferException 本身用作错误情况的信号机制。作为实例化的前置条件,调用方实例必须拥有有效的 ara::core::ErrorCode([SWS_DM_00986])。由于构造函数被定义为 noexcept,因此实例化在任何情况下都不会导致二次异常([SWS_DM_00986])。

如果抛出的 DiagOfferException 未被应用软件捕获,默认情况下会导致调用 std::terminate,从而引起进程的失控崩溃。通过继承自 ara::core::Exception,推测除了特定捕获 ara::diag::DiagOfferException 之外,还可以使用针对 ara::core::Exception 的通用处理程序(解释),以确保进程级别的健壮容错能力。 问题 Q-d0cf602a077c4dae (未决)

本指南基于 AUTOSAR Adaptive R25-11 规范(模块 diag),并针对 autodocs 自动生成。

UML 类图

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

G nara__diag__DiagOfferException442 DiagOfferException + DiagOfferException() nara__core__Exception792 Exception nara__diag__DiagOfferException442->nara__core__Exception792 nstd__exception10 std::exception nara__core__Exception792->nstd__exception10

构造函数和析构函数

Construct a new DiagException from an ErrorCode.

explicit DiagOfferException (ara::core::ErrorCode err) noexcept;

方法文档

函数 DiagOfferException [SWS_DM_00986] Upstream: RS_AP_00119

explicit DiagOfferException (ara::core::ErrorCode err) noexcept;

Construct a new DiagException from an ErrorCode.

Header-Datei#include "ara/diag/diag_error_domain.h"
Scopeclass ara::diag::DiagOfferException
Exception-Sicherheitexception safe
Thread-Sicherheitthread-safe

Parameter (in)

ParameterBeschreibung
errthe ErrorCode

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

Record
AUTOSAR/AP/record/SWS_DM_00986
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00986@rel:R25-11#da885c70
Content hash
da885c70
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00986
Status: valid/unmigrated Version: rel:R25-11#5fd23a99 Versionshistorie & Revisions (1 transition, 4 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_DM_00986@rel:R25-11#5fd23a99
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#346e60702026-09-30
  • R23-11rel:R23-11#f79e89952026-10-14
  • R24-11rel:R24-11#5fd23a992026-10-14
  • R25-11rel:R25-11#5fd23a992026-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