DEENESPTFRRUARHIKOZHNL

class 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

User GuideKI-GENERIERT

Dient dem Kapseln und Weiterleiten von Diagnose-Fehlercodes als C++-Ausnahme an übergeordnete Funktionsaufrufer.
KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 61473cb95c98 Herkunft Offene Fragen (2)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Dient dem Kapseln und Weiterleiten von Diagnose-Fehlercodes als C++-Ausnahme an übergeordnete Funktionsaufrufer.

Die Klasse ara::diag::DiagException fungiert als spezialisierter Ausnahmetyp zur Signalisierung von Fehlern aus Diagnose-Klassen der AUTOSAR Adaptive Platform ([SWS_DM_00515]). Sie kapselt einen ara::core::ErrorCode und wird bei internen Fehlern geworfen, um Fehlerzustände strukturiert an aufrufende Anwendungen weiterzuleiten ([SWS_DM_00516]). Ihr Konstruktor ist thread-safe und durch noexcept ausnahmesicher deklariert ([SWS_DM_00516]).

Kontext

Die Klasse ara::diag::DiagException bildet den zentralen Ausnahmetyp für das Funktionscluster der AUTOSAR Adaptive Platform Diagnostics (SWS Diagnostics §8.11.4 „Class: DiagException“, [SWS_DM_00515]). Sie leitet sich direkt von der Basisklasse ara::core::Exception ab und ist dafür verantwortlich, Fehlerzustände, die innerhalb der Diagnose-Klassen auftreten, im Ausnahmefall an den Aufrufer zu melden. Primäre Interaktionspartner sind die bereitstellenden Diagnose-Klassen innerhalb von ara::diag, welche Ausnahmesituationen signalisieren, sowie die nutzende Anwendungssoftware, die Diagnose-Operationen anfordert und potenzielle Ausnahmen abfängt. Durch die Deklaration in der Header-Datei ara/diag/diag_error_domain.h steht die Ausnahmeklasse in unmittelbarer Verbindung mit den Diagnose-spezifischen Fehlerdomänen ([SWS_DM_00516]).

Lebenszyklus

Die Instanziierung von ara::diag::DiagException erfolgt durch Übergabe eines Fehlercodes vom Typ ara::core::ErrorCode an den Konstruktor ([SWS_DM_00516]). Dieser Konstruktor ist als explicit definiert, wodurch implizite Typkonvertierungen aus Fehlercodes unterbunden werden. Zudem ist die Erzeugung als noexcept deklariert, was die Ausnahme-Sicherheit („exception safe“) bei der Objekterzeugung garantiert und verhindert, dass während des Auslösens eines Ausnahmezustands eine weitere Ausnahme geworfen wird ([SWS_DM_00516]). Für den Aufruf des Konstruktors wird Thread-Sicherheit („thread-safe“) garantiert ([SWS_DM_00516]). Hinsichtlich des weiteren Lebenszyklus existiert das Exception-Objekt für die Dauer des Stack-Unwinding-Prozesses bis zum Abschluss des zugehörigen catch-Blocks (Interpretation: Die Besitzverhältnisse und die Zerstörung des Ausnahmeobjekts folgen den standardisierten Mechanismen der C++-Laufzeitumgebung). Frage Q-ae485b4ea411b187 (offen)

Nutzungspfad

Der reguläre Einsatzpfad von ara::diag::DiagException erstreckt sich von der Erkennung einer Fehlersituation im Diagnose-Subsystem bis zur Auswertung durch die Anwendungsebene. Der folgende Ablauf verdeutlicht die Interaktion der beteiligten Komponenten:

Ablauf beim Auslösen und Behandeln einer DiagExceptionAnwendungara::diag-KlasseDiagExceptionDiagnosefunktion aufrufenUse Case: Fehlerfall im Diagnose-ClusterDiagException(err) instanziierenthrow DiagExceptionAusnahme im catch-Block behandeln

Sequenzdiagramm: Typischer Ablauf beim Auftreten, Auslösen und Behandeln einer DiagException. Quellen: [SWS_DM_00515], [SWS_DM_00516].

Die Anwendung stößt zunächst eine Operation an einer Funktionsklasse des Moduls ara::diag an. Tritt während der Bearbeitung eine Bedingung ein, die einen regulären Rückgabepfad ausschließt, erzeugt die Diagnose-Klasse eine Instanz von ara::diag::DiagException unter Angabe des spezifischen ara::core::ErrorCode ([SWS_DM_00516]). Diese Ausnahme wird über den normalen C++-Ausnahmemechanismus geworfen. Die aufrufende Anwendungsinstanz fängt das Objekt in einem typisierten Ausnahmebehandler ab, um geeignete Wiederherstellungs- oder Protokollierungsmaßnahmen einzuleiten.

Fehlerszenarien

Als Fehlersignalisierungsklasse bedient ara::diag::DiagException vorrangig die Weitergabe diagnostischer Fehlerzustände. Vorbedingung für die erfolgreiche Konstruktion ist die Bereitstellung eines initialisierten Parameters err vom Typ ara::core::ErrorCode ([SWS_DM_00516]). Die Ausnahmesicherheit des Konstruktors stellt sicher, dass selbst bei ressourcenkritischen Situationen keine Sekundärausnahmen im Konstruktionspfad ausgelöst werden ([SWS_DM_00516]). Nach erfolgreicher Instanziierung kapselt das Objekt den übergebenen Fehlercode vollständig (Interpretation: Der konkrete Diagnose-Fehlercode dürfte über die geerbten Basismechanismen von ara::core::Exception durch die abfangende Anwendungslogik inspiziert werden). Frage Q-d20a61b72951321b (offen)

Dieser Leitfaden wurde von einer KI auf Basis der Spezifikation AUTOSAR AP R25-11 kuratiert.

UML-Klassendiagramm

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

Konstruktoren und Destruktor

DiagException function

Construct a new DiagException from an ErrorCode.

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

Dokumentation der Methoden

function 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#027392ad
Content hash
027392ad
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