DEENESPTFRRUARHIKOZHNL

class 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"
Scopenamespace ara::exec
Basisklasse(n)ara::core::Exception

User GuideKI-GENERIERT

Kapselt Fehlercodes des Execution Managements als C++-Ausnahme zur synchronen Fehlerbehandlung.
KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: e102ca6cc8ed Herkunft Offene Fragen (3)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Kapselt Fehlercodes des Execution Managements als C++-Ausnahme zur synchronen Fehlerbehandlung.

Die Klasse ara::exec::ExecException dient als finale Ausnahmeklasse des Execution Managements zur Kapselung und Signalisierung modulspezifischer Fehler über den C++-Ausnahmemechanismus. Instanzen werden im Fehlerfall unter Angabe eines ara::core::ErrorCode über den threadsicheren Konstruktor erzeugt und geworfen, woraufhin aufrufende Stellen sie abfangen und analysieren [SWS_EM_02283]. Als fundamentale Randbedingung ist die Konstruktion als noexcept spezifiziert, wodurch die Objekterstellung garantiert ausnahmesicher bleibt [SWS_EM_02283]. Unbehandelte Ausnahmen müssen vermieden werden, da sie zur Systemterminierung führen.

Kontext

Die Klasse ara::exec::ExecException stellt die zentrale Ausnahmeklasse des Moduls Execution Management (exec) innerhalb der AUTOSAR Adaptive Platform dar. Gemäß ihrer Spezifikation dient sie als Kapselung für Ausnahmen, die durch das Execution Management ausgelöst werden. Die Klassendeklaration definiert sie als final mit öffentlicher Ableitung von der Standard-Basisausnahmeklasse ara::core::Exception, wodurch sie sich nahtlos in das einheitliche Ausnahme- und Fehlerbehandlungskonzept der Adaptive Platform einbettet. Durch den Bezeichner final ist eine weitere Spezialisierung oder Unterklassifizierung ausgeschlossen.

Deklariert wird die Ausnahmeklasse im Header #include "ara/exec/exec_error_domain.h" [SWS_EM_02283]. Die primäre funktionale Verantwortung von ara::exec::ExecException liegt im Transport von modulspezifischen Fehlerzuständen über den C++-Ausnahmemechanismus. Interpretation: Das Werfen dieser Ausnahme dürfte vor allem in Ausführungsumgebungen zum Tragen kommen, in denen Fehlerzustände des Execution Managements nicht rein über wertbasierte Fehlertypen propagiert werden, sondern ein synchroner Kontrollflussabbruch über C++-Ausnahmen erforderlich ist. Frage Q-8faec8c282524965 (offen)

Lebenszyklus

Der Lebenszyklus einer Instanz von ara::exec::ExecException beginnt mit der expliziten Konstruktion unter Übergabe eines Fehlercodes. Der Konstruktor explicit ExecException(ara::core::ErrorCode errorCode) noexcept erzeugt ein neues Ausnahmeobjekt, welches den übergebenen Fehlercode kapselt [SWS_EM_02283]. Die Kennzeichnung als noexcept stellt sicher, dass die Objekterzeugung selbst im Kontext einer bereits bestehenden Fehlerbehandlung garantiert fehlschlagsfrei bleibt und keine kaskadierenden Folgefehler auslöst [SWS_EM_02283].

In Bezug auf die Ausführungssicherheit ist die Konstruktion explizit als ausnahmesicher („exception safe“) und threadsicher („thread-safe“) klassifiziert [SWS_EM_02283]. Dies ermöglicht die zuverlässige Erzeugung von Ausnahmeinstanzen über verschiedene Threads hinweg, ohne dass zusätzliche Synchronisationsmechanismen erforderlich sind. Nach dem Auslösen via throw geht das Objekt in die Verwaltung des C++-Laufzeitsystems über. Interpretation: Die Zerstörung des Ausnahmeobjekts erfolgt automatisch nach Verlassen des behandelnden catch-Blocks im Zuge des regulären Stack-Unwindings, weshalb keine explizite Lebenszyklusverwaltung durch den Aufrufer notwendig ist. Frage Q-ec22ad5f177555aa (offen)

Nutzungspfad

Ein typischer Nutzungspfad von ara::exec::ExecException umfasst die Instanziierung im Fehlerfall innerhalb des Execution Managements sowie das kontrollierte Abfangen im aufrufenden Anwendungskontext:

  • Fehleridentifikation und Instanziierung: Tritt im Execution Management eine Ausnahmebedingung auf, wird die Ursache in einem ara::core::ErrorCode der zugehörigen Fehlerdomäne abgebildet und zur expliziten Initialisierung einer ara::exec::ExecException herangezogen [SWS_EM_02283].
  • Signalisierung: Die initialisierte Ausnahmeinstanz wird geworfen, wodurch der reguläre Ausführungspfad unterbrochen und die Stack-Abwicklung eingeleitet wird.
  • Abfangen: Aufrufende Komponenten fangen das Ausnahmeobjekt entweder gezielt als const ara::exec::ExecException& oder allgemeiner über die polymorphe Basisklasse const ara::core::Exception& ab.
  • Auswertung: Interpretation: Da das Objekt mit einem ara::core::ErrorCode konstruiert wurde [SWS_EM_02283] und von ara::core::Exception erbt, dürfte der Empfänger den enthaltenen Fehlercode über Schnittstellen der Basisklasse extrahieren, um modulspezifische Wiederherstellungs- oder Protokollierungsmaßnahmen durchzuführen. Frage Q-d4671c34f5aab6f9 (offen)

Fehlerszenarien

Als spezialisierte Ausnahmeklasse ist ara::exec::ExecException darauf ausgelegt, bestehende Fehlersituationen abzubilden, ohne bei ihrer eigenen Verwendung neue Fehler zu induzieren. Für die Erzeugung verlangt der Konstruktor die Übergabe eines ara::core::ErrorCode [SWS_EM_02283]. Da der Konstruktor als noexcept deklariert ist, sind Vorbedingungsfehler bei der Instanziierung ausgeschlossen, die die Erzeugung des Ausnahmeobjekts behindern könnten [SWS_EM_02283].

Ein wesentliches Fehlerszenario auf Systemebene liegt im unvollständigen Abfangen geworfener Ausnahmen. Bleibt eine von ara::exec::ExecException ausgelöste Ausnahme entlang der Aufrufhierarchie unbehandelt, greift die standardmäßige C++-Laufzeitbehandlung, was typischerweise in den Aufruf von std::terminate und damit in den vorzeitigen Prozessabbruch mündet. Interagierende Software-Komponenten müssen daher sicherstellen, dass Aufrufe an potenziell werfende Funktionen des Execution Managements durch adäquate try-catch-Blöcke abgesichert sind.

Dieser Leitfaden wurde durch eine KI auf Basis der Spezifikation AUTOSAR Adaptive Platform R25-11 generiert.

UML-Klassendiagramm

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

G nara__exec__ExecException556 ExecException + ExecException() nara__core__Exception792 Exception nara__exec__ExecException556->nara__core__Exception792 nstd__exception10 std::exception nara__core__Exception792->nstd__exception10

Konstruktoren und Destruktor

ExecException function

Constructs a new ExecException object containing an error code.

explicit ExecException (ara::core::ErrorCode errorCode) noexcept;

Dokumentation der Methoden

function ExecException [SWS_EM_02283] Upstream: RS_AP_00120, RS_AP_00121, RS_AP_00130, RS_AP_00159

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"
Scopeclass ara::exec::ExecException
Exception-Sicherheitexception safe
Thread-Sicherheitthread-safe

Parameter (in)

ParameterBeschreibung
errorCodeThe error code.

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

Record
AUTOSAR/AP/record/SWS_EM_02283
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_EM_02283@rel:R25-11#7afdb8d9
Content hash
7afdb8d9
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_ExecutionManagement.pdf#nameddest=SWS_EM_02283
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-11rel:R25-11#7afdb8d92026-09-30
  • R19-11rel:R19-11#5683c5ea2026-10-14
  • R20-11rel:R20-11#1a1c4d242026-10-14
  • R21-11rel:R21-11#1a1c4d242026-10-14
  • R22-11rel:R22-11#49bf1b972026-10-14
  • R23-11rel:R23-11#4052ff1d2026-10-14
  • R24-11rel:R24-11#8fa7f4222026-10-14
  • R25-11rel:R25-11#f57f24912026-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