类 ara::exec::ExecException
[SWS_EM_02282] Upstream: RS_AP_00130, RS_AP_00122, RS_AP_00127, RS_AP_00154, RS_AP_00150, RS_AP_00140
class ExecException final : public ara::core::Exception {...};
Defines a class for exceptions to be thrown by the Execution Management.
| Header-Datei | #include "ara/exec/exec_error_domain.h" |
|---|
| Forwarding-Header | #include "ara/exec/exec_fwd.h" |
|---|
| Scope | namespace ara::exec |
|---|
| Basisklasse(n) | ara::core::Exception |
|---|
用户指南人工智能生成
将 Execution Management 的错误代码封装为 C++ 异常,以进行同步错误处理。
AI 生成
未审核
模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: e102ca6cc8ed
来源
未决问题(3)
将 Execution Management 的错误代码封装为 C++ 异常,以进行同步错误处理。
类 ara::exec::ExecException 用作 Execution Management 的最终异常类,用于通过 C++ 异常机制封装和指示模块特定错误。在发生错误时,通过线程安全的构造函数指定 ara::core::ErrorCode 创建并抛出实例,随后调用方对其进行捕获和分析 [SWS_EM_02283]。作为基本边界条件,构造被指定为 noexcept,从而保证对象创建始终具备异常安全性 [SWS_EM_02283]。必须避免未处理的异常,因为它们会导致系统终止。
上下文
类 ara::exec::ExecException 代表 AUTOSAR Adaptive Platform 内 Execution Management 模块(exec)的核心异常类。根据其规范,它用于封装由 Execution Management 触发的异常。类声明将其定义为 final,并公有继承自标准基异常类 ara::core::Exception,从而无缝嵌入到 Adaptive Platform 的统一异常和错误处理概念中。通过标识符 final,排除了进一步特化或派生子类的可能性。
该异常类在头文件 #include "ara/exec/exec_error_domain.h" 中声明 [SWS_EM_02283]。ara::exec::ExecException 的主要功能职责在于通过 C++ 异常机制传递模块特定的错误状态。解读:抛出该异常应主要在以下执行环境中发挥作用:在这些环境中,Execution Management 的错误状态不仅纯粹通过基于值的错误类型传播,还需要通过 C++ 异常实现同步控制流中断。 问题 Q-8faec8c282524965 (未决)
生命周期
ara::exec::ExecException 实例的生命周期始于传入错误代码的显式构造。构造函数 explicit ExecException(ara::core::ErrorCode errorCode) noexcept 创建一个新的异常对象,该对象封装了传入的错误代码 [SWS_EM_02283]。标记为 noexcept 可确保即使在现有错误处理的上下文中,对象创建本身也保证不会失败,并且不会触发级联的后续错误 [SWS_EM_02283]。
在执行安全性方面,构造被明确归类为异常安全(“exception safe”)和线程安全(“thread-safe”)[SWS_EM_02283]。这使得跨不同线程可靠创建异常实例成为可能,而无需额外的同步机制。在通过 throw 触发后,对象移交给 C++ 运行时系统管理。解读:在常规栈展开过程中,离开处理该异常的 catch 块后,异常对象将自动销毁,因此调用方无需显式管理生命周期。 问题 Q-ec22ad5f177555aa (未决)
使用路径
ara::exec::ExecException 的典型使用路径包括在 Execution Management 内部发生错误时进行实例化,以及在调用方应用程序上下文中进行受控捕获:
- 错误识别与实例化:如果 Execution Management 中出现异常情况,原因将映射到关联错误域的
ara::core::ErrorCode 中,并用于显式初始化 ara::exec::ExecException [SWS_EM_02283]。
- 指示:初始化的异常实例被抛出,从而中断常规执行路径并启动栈展开。
- 捕获:调用组件要么针对性地将其作为
const ara::exec::ExecException& 捕获,要么更通用地通过多态基类 const ara::core::Exception& 捕获该异常对象。
- 评估:解读:由于该对象是使用
ara::core::ErrorCode 构造的 [SWS_EM_02283] 并且继承自 ara::core::Exception,接收方应能够通过基类的接口提取所包含的错误代码,以执行模块特定的恢复或日志记录措施。 问题 Q-d4671c34f5aab6f9 (未决)
错误场景
作为专用的异常类,ara::exec::ExecException 旨在映射现有错误情况,而不会在其自身使用过程中引发新的错误。为了进行创建,构造函数要求传入 ara::core::ErrorCode [SWS_EM_02283]。由于构造函数被声明为 noexcept,因此排除了在实例化期间可能阻碍异常对象创建的先决条件错误 [SWS_EM_02283]。
系统层面的一个关键错误场景在于未完全捕获抛出的异常。如果由 ara::exec::ExecException 触发的异常在沿调用层次结构传递时保持未处理状态,则标准的 C++ 运行时处理将生效,这通常会导致调用 std::terminate 并因此导致进程提前中止。因此,交互的软件组件必须确保通过适当的 try-catch 块来保护对 Execution Management 中可能抛出异常的函数的调用。
本指南由 AI 基于 AUTOSAR Adaptive Platform 规范 R25-11 生成。
UML 类图
Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.
此版本没有元素数据
构造函数和析构函数
Constructs a new ExecException object containing an error code.
方法文档
explicit ExecException (ara::core::ErrorCode errorCode) noexcept;
Constructs a new ExecException object containing an error code.
| Header-Datei | #include "ara/exec/exec_error_domain.h" |
|---|
| Scope | class ara::exec::ExecException |
|---|
| Exception-Sicherheit | exception safe |
|---|
| Thread-Sicherheit | thread-safe |
|---|
Parameter (in)
| Parameter | Beschreibung |
|---|
| errorCode | The error code. |
Status: valid/unmigrated
Version: rel:R25-11#f57f2491
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_EM_02283@rel:R25-11#f57f2491
Point-in-Time History:
Recorded Revisions (8):
- R25-11
rel:R25-11#7afdb8d92026-09-30 - R19-11
rel:R19-11#5683c5ea2026-10-14 - R20-11
rel:R20-11#1a1c4d242026-10-14 - R21-11
rel:R21-11#1a1c4d242026-10-14 - R22-11
rel:R22-11#49bf1b972026-10-14 - R23-11
rel:R23-11#4052ff1d2026-10-14 - R24-11
rel:R24-11#8fa7f4222026-10-14 - R25-11
rel:R25-11#f57f24912026-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 · 德文原文