DEENESPTFRRUARHIKOZHNL

class ara::core::CoreException

[SWS_CORE_05211] Upstream: RS_AP_00130

class CoreException :            public Exception {...};

Exception type thrown for ara::core errors.

Header-Datei#include "ara/core/core_error_domain.h"
Forwarding-Header#include "ara/core/core_fwd.h"
Scopenamespace ara::core
Basisklasse(n)Exception

User GuideKI-GENERIERT

Dient als Ausnahmetyp zur Meldung von Core-Fehlern und kapselt einen Fehlercode zur strukturierten Ausnahmebehandlung.
KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 2b622ea04d25 Herkunft Offene Fragen (2)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Dient als Ausnahmetyp zur Meldung von Core-Fehlern und kapselt einen Fehlercode zur strukturierten Ausnahmebehandlung.

Die Klasse ara::core::CoreException dient als zentraler Ausnahmetyp für die Übermittlung von Fehlern aus dem Funktionsbereich ara::core und leitet hierfür von der Basisklasse Exception ab. Die Instanziierung erfolgt verpflichtend über den Konstruktor unter Übergabe eines spezifischen ErrorCode, welcher die Fehlerursache kapselt [SWS_CORE_05212]. Als wesentliche Randbedingung garantiert die Implementierung vollständige Thread-Sicherheit und Exception-Sicherheit sowie eine ausnahmslose noexcept-Garantie bei der Erzeugung [SWS_CORE_05212]. Aufrufer fangen die Ausnahme ab, um den enthaltenen Fehlerzustand kontrolliert zu behandeln.

Kontext

Die Klasse ara::core::CoreException dient als zentraler Ausnahmetyp für Fehler, die innerhalb des Funktionsbereichs ara::core auftreten. Gemäß der Klassendeklaration leitet sie öffentlich von der Basisklasse Exception ab. Die wesentliche Aufgabe von CoreException besteht darin, ein aufgetretenes Fehlerereignis, das durch ein ErrorCode-Objekt beschrieben wird, in das Ausnahmebehandlungsmodell von C++ zu überführen. Im Plattformkontext agiert die Klasse damit als Brücke zwischen der fehlererkennenden Infrastrukturkomponente und dem aufrufenden Anwendungs- oder Plattformcode. Wenn eine Operation in ara::core fehlschlägt und die Schnittstelle eine Ausnahme vorsieht, wird CoreException instanziiert und signalisiert. Dabei nimmt der Konstruktor gemäß [SWS_CORE_05212] ein konkretes Objekt vom Typ ErrorCode entgegen, welches die fachliche Ursache und Domäne des aufgetretenen Fehlers kapselt. Die Einbettung in die Klassenhierarchie ermöglicht es höheren Architekturschichten, Fehler entweder spezifisch als CoreException abzufangen oder generisch über die Basisklasse Exception zu behandeln.

ErrorCode ErrorCode CoreException CoreException ErrorCode->CoreException initialisiert Exception Exception CoreException->Exception erbt von

Kontextdiagramm: Beziehung von CoreException zu ErrorCode und der Basisklasse Exception. Quellen: [SWS_CORE_05212]

Lebenszyklus

Der Lebenszyklus einer Instanz von CoreException beginnt im Kontext der Fehlererkennung. Die Erzeugung erfolgt über den Konstruktor explicit CoreException(ErrorCode err) noexcept gemäß [SWS_CORE_05212]. Durch das Schlüsselwort explicit wird eine implizite Konvertierung aus einem ErrorCode unterbunden, sodass eine bewusste Objekterzeugung erzwungen wird. Ein wesentliches Merkmal der Konstruktion ist die Spezifikation als noexcept [SWS_CORE_05212]: Die Instanziierung selbst kann keine weiteren Ausnahmen auslösen, womit eine verlässliche Ausnahmeerzeugung auch in kritischen Systemzuständen sichergestellt ist. Zudem ist die Ausnahmesicherheit als vollkommen sicher (exception safe) eingestuft und die Operation gilt als threadsicher (thread-safe) [SWS_CORE_05212]. Nach der Erzeugung wird das Ausnahmeobjekt üblicherweise mittels throw weitergegeben. Während des Stack-Unwindings wird die Ausnahme transportiert, bis sie von einem passenden Ausnahme-Handler gebunden wird. Der Lebenszyklus endet mit dem Verlassen des fangenden Blocks, woraufhin die Zerstörung des Ausnahmeobjekts deterministisch vollzogen wird.

Nutzungspfad

Der reguläre Nutzungspfad von CoreException gliedert sich in drei aufeinanderfolgende Phasen: Diagnose, Wurf und Abfang. Zunächst identifiziert eine Komponente des Moduls core eine Abweichung vom Sollverhalten und instanziiert einen entsprechenden ErrorCode. Anschließend wird die Ausnahme erzeugt, indem der Konstruktor CoreException(err) aufgerufen wird [SWS_CORE_05212]. Unmittelbar danach erfolgt das Werfen des Objekts in den Ausführungskontext. Auf Anwenderebene wird der Aufruf in einem geschützten Block ausgeführt. Tritt der Ausnahmefall ein, fängt ein catch-Block die Instanz ab – typischerweise als konstante Referenz auf CoreException oder polymorph über die Basisklasse Exception. Im Handler kann der Fehler analysiert, protokolliert oder behoben werden. Da die Header-Datei #include "ara/core/core_error_domain.h" gemäß [SWS_CORE_05212] vorgegeben ist, steht die Klassendeklaration für Anwendungsmodule konsistent bereit.

Fehlerszenarien

Im Bereich der Fehlerszenarien dient CoreException selbst als Signalträger und wirft während ihrer eigenen Erzeugung keine sekundären Fehler. Da der Konstruktor als noexcept deklariert ist [SWS_CORE_05212], ist das Szenario eines Konstruktionsfehlschlags ausgeschlossen. Die Spezifikation garantiert strikte Exception-Sicherheit und Thread-Sicherheit [SWS_CORE_05212], sodass auch der nebenläufige Zugriff bei der Erzeugung unbedenklich bleibt. Ein kritisches Fehlerszenario entsteht auf Systemebene dann, wenn eine geworfene CoreException von keinem übergeordneten Scope abgefangen wird, was in Standard-C++ zum Aufruf von std::terminate führen dürfte. Frage Q-492683ca01bebc7d (offen) Entwickler müssen daher sicherstellen, dass Aufrufe von potenziell werfenden ara::core-Funktionen in geeignete Ausnahmebehandlungsblöcke eingebettet sind. Ein weiteres potenzielles Szenario betrifft das Weiterleiten über Komponentengrenzen hinweg, bei dem der enthaltene ErrorCode korrekt interpretiert werden muss, um adäquate Fehlerbehebungsmaßnahmen einzuleiten.

Dieser Leitfaden wurde durch einen KI-Kurations-Assistenten auf Basis von AUTOSAR R25-11 generiert.

UML-Klassendiagramm

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

G nara__core__CoreException713 CoreException + CoreException() nara__core__Exception792 Exception nara__core__CoreException713->nara__core__Exception792 nstd__exception10 std::exception nara__core__Exception792->nstd__exception10

Konstruktoren und Destruktor

CoreException function

Construct a new CoreException from an ErrorCode.

explicit CoreException (ErrorCode err) noexcept;

Dokumentation der Methoden

function CoreException [SWS_CORE_05212] Upstream: RS_AP_00130

explicit CoreException (ErrorCode err) noexcept;

Construct a new CoreException from an ErrorCode.

Header-Datei#include "ara/core/core_error_domain.h"
Scopeclass ara::core::CoreException
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_CORE_05212
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CORE_05212@rel:R25-11#89d8f392
Content hash
89d8f392
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Core.pdf#nameddest=SWS_CORE_05212
Status: valid/unmigrated Version: rel:R25-11#fcccf313 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_CORE_05212@rel:R25-11#fcccf313
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#89d8f3922026-09-30
  • R19-11rel:R19-11#7047abf42026-10-14
  • R20-11rel:R20-11#69aba1672026-10-14
  • R21-11rel:R21-11#69aba1672026-10-14
  • R22-11rel:R22-11#7a696c932026-10-14
  • R23-11rel:R23-11#cc26b8992026-10-14
  • R24-11rel:R24-11#fcccf3132026-10-14
  • R25-11rel:R25-11#fcccf3132026-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