类 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" |
|---|
| Scope | namespace ara::diag |
|---|
| Basisklasse(n) | ara::core::Exception |
|---|
用户指南人工智能生成
用于将诊断错误代码封装为 C++ 异常并传递给上层函数调用方。
AI 生成
未审核
模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 61473cb95c98
来源
未决问题(2)
用于将诊断错误代码封装为 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 发生、抛出和处理的典型流程。来源:[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.
此版本没有元素数据
构造函数和析构函数
Construct a new DiagException from an ErrorCode.
方法文档
explicit DiagException (ara::core::ErrorCode err) noexcept;
Construct a new DiagException from an ErrorCode.
| Header-Datei | #include "ara/diag/diag_error_domain.h" |
|---|
| Scope | class ara::diag::DiagException |
|---|
| Exception-Sicherheit | exception safe |
|---|
| Thread-Sicherheit | thread-safe |
|---|
Parameter (in)
| Parameter | Beschreibung |
|---|
| err | the ErrorCode |
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-11
rel:R25-11#027392ad2026-09-30 - R20-11
rel:R20-11#f80be4a32026-10-14 - R21-11
rel:R21-11#e1dfd6d02026-10-14 - R22-11
rel:R22-11#c06b421b2026-10-14 - R23-11
rel:R23-11#d17f9fbb2026-10-14 - R24-11
rel:R24-11#6bef63b12026-10-14 - R25-11
rel:R25-11#6bef63b12026-10-14 active
Historical Snapshot:
🚫
Requirement entfallen: Dieses Element ist im gewählten Release nicht mehr enthalten.
Requirement Text as-of this release:
Reachable Artifacts & Dependents:
| Date | Actor | Transition | Reason / Rationale | Campaign |
| 2026-08-13 | tool | none → valid/unmigrated | mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record | 2026-08-13-status-backfill |
gemini-3.8-flash-low· 2026-10-13 · 德文原文