DEENESPTFRRUARHIKOZHNL

类 ara::diag::DiagException

[SWS_DM_00515] Upstream: RS_AP_00119

class DiagException :            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

用户指南人工智能生成

用于将诊断错误代码封装为 C++ 异常并传递给上层函数调用方。
AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 61473cb95c98 来源 未决问题(2)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

用于将诊断错误代码封装为 C++ 异常并传递给上层函数调用方。

类 ara::diag::DiagException 作为专用的异常类型,用于发出来自 AUTOSAR Adaptive Platform 诊断类的错误信号([SWS_DM_00515])。它封装了一个 ara::core::ErrorCode,并在发生内部错误时抛出,以便将错误状态结构化地转发给调用方应用程序([SWS_DM_00516])。其构造函数是线程安全的,并通过 noexcept 声明为异常安全([SWS_DM_00516])。

上下文

类 ara::diag::DiagException 构成了 AUTOSAR Adaptive Platform Diagnostics 功能集群的核心异常类型(SWS Diagnostics §8.11.4 “Class: DiagException”、[SWS_DM_00515])。它直接派生自基类 ara::core::Exception,负责在发生异常情况时将诊断类内部出现的错误状态报告给调用方。主要交互对象包括提供诊断功能并发出异常情况信号的 ara::diag 内部诊断类,以及请求诊断操作并捕获潜在异常的使用方应用程序软件。通过在头文件 ara/diag/diag_error_domain.h 中声明,该异常类与诊断特定的错误域([SWS_DM_00516])建立了直接关联。

生命周期

ara::diag::DiagException 的实例化通过向构造函数传递类型为 ara::core::ErrorCode 的错误代码来完成([SWS_DM_00516])。该构造函数被定义为 explicit,从而阻止了从错误代码进行的隐式类型转换。此外,对象的创建被声明为 noexcept,这保证了对象创建过程中的异常安全性(“exception safe”),并防止在触发异常状态期间抛出另一个异常([SWS_DM_00516])。构造函数的调用保证了线程安全性(“thread-safe”)[SWS_DM_00516]。关于后续生命周期,异常对象在栈展开(stack unwinding)过程期间一直存在,直至关联的 catch 块结束(解释:异常对象的所有权关系和销毁遵循 C++ 运行环境的标准化机制)。 问题 Q-ae485b4ea411b187 (未决)

使用路径

ara::diag::DiagException 的常规使用路径涵盖从诊断子系统中检测到错误情况到应用层评估的全过程。以下流程阐明了相关组件之间的交互:

抛出并处理 DiagException 时的流程应用ara::diag-KlasseDiagExceptionDiagnosefunktion aufrufenUse Case: 诊断集群中的错误情况DiagException(err) instanziierenthrow DiagException在 catch 块中处理异常

时序图:DiagException 发生、抛出和处理的典型流程。来源:[SWS_DM_00515]、[SWS_DM_00516]。

应用程序首先触发模块 ara::diag 的功能类上的操作。如果在处理过程中发生排除了常规返回路径的条件,诊断类将创建一个 ara::diag::DiagException 实例,并指定具体的 ara::core::ErrorCode([SWS_DM_00516])。该异常通过正常的 C++ 异常机制抛出。调用方应用程序实例在类型化异常处理程序中捕获该对象,以启动适当的恢复或日志记录措施。

错误场景

作为错误信号类,ara::diag::DiagException 主要用于传递诊断错误状态。成功构造的前提条件是提供已初始化的 ara::core::ErrorCode 类型的参数 err([SWS_DM_00516])。构造函数的异常安全性确保即使在资源紧张的情况下,构造路径中也不会触发二次异常([SWS_DM_00516])。成功实例化后,该对象完全封装了传递进来的错误代码(解释:捕获异常的应用逻辑推测可以通过 ara::core::Exception 继承的基类机制检查具体的诊断错误代码)。 问题 Q-d20a61b72951321b (未决)

本指南由人工智能基于 AUTOSAR AP R25-11 规范整理生成。

UML 类图

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

G nara__diag__DiagException942 DiagException + DiagException() nara__core__Exception792 Exception nara__diag__DiagException942->nara__core__Exception792 nstd__exception10 std::exception nara__core__Exception792->nstd__exception10

构造函数和析构函数

Construct a new DiagException from an ErrorCode.

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

方法文档

函数 DiagException [SWS_DM_00516] Upstream: RS_AP_00119

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

Construct a new DiagException from an ErrorCode.

Header-Datei#include "ara/diag/diag_error_domain.h"
Scopeclass ara::diag::DiagException
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_00516
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00516@rel:R25-11#a0c8454d
Content hash
a0c8454d
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00516
Status: valid/unmigrated Version: rel:R25-11#6bef63b1 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_DM_00516@rel:R25-11#6bef63b1
Point-in-Time History:
Recorded Revisions (7):
  • R25-11rel:R25-11#027392ad2026-09-30
  • R20-11rel:R20-11#f80be4a32026-10-14
  • R21-11rel:R21-11#e1dfd6d02026-10-14
  • R22-11rel:R22-11#c06b421b2026-10-14
  • R23-11rel:R23-11#d17f9fbb2026-10-14
  • R24-11rel:R24-11#6bef63b12026-10-14
  • R25-11rel:R25-11#6bef63b12026-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