DEENESPTFRRUARHIKOZHNL

class ara::diag::DiagSovdException

[SWS_DM_01807] Upstream: RS_AP_00119

class DiagSovdException :           public ara::core::Exception {...};

Exception type for SOVD thrown by Diag classes.

Header-Datei#include "ara/diag/diag_sovd_error_domain.h"
Forwarding-Header#include "ara/diag/diag_fwd.h"
Scopenamespace ara::diag
Basisklasse(n)ara::core::Exception

User GuideKI-GENERIERT

Signalisiert SOVD-spezifische Diagnosefehler als ausnahmesichere Exception mit zugeordnetem Fehlercode an Aufrufer.
KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 58783cae6416 Herkunft Offene Fragen (2)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Signalisiert SOVD-spezifische Diagnosefehler als ausnahmesichere Exception mit zugeordnetem Fehlercode an Aufrufer.

Die Klasse ara::diag::DiagSovdException dient als spezialisierter Ausnahmetyp für Service-Oriented Vehicle Diagnostics (SOVD) und wird von Diagnoseklassen im Modul diag zur Fehlersignalisierung ausgelöst [SWS_DM_01807]. Sie leitet von ara::core::Exception ab und wird bei Fehlersituationen explizit mit einem ara::core::ErrorCode instanziiert, um Fehlerinformationen über das C++-Stack-Unwinding an den aufrufenden Kontext zu übermitteln [SWS_DM_01808]. Als zentrale Randbedingung ist der Konstruktor als noexcept spezifiziert und gewährleistet damit vollständige Ausnahmesicherheit sowie Thread-Sicherheit bei der Objekterzeugung.

Kontext

Die Klasse ara::diag::DiagSovdException stellt den zentralen Ausnahmetyp für Service-Oriented Vehicle Diagnostics (SOVD) im Diagnosemodul der AUTOSAR Adaptive Platform dar ([SWS_DM_01807], SWS Diagnostics §8.51.4 „Class: DiagSovdException“). Sie wird von internen Diagnoseklassen ausgelöst, um spezifische Fehlerzustände während der Verarbeitung von SOVD-Anfragen anzuzeigen ([SWS_DM_01807], SWS Diagnostics, S. 69).

Die Klasse leitet öffentlich von der allgemeinen Basisausnahme ara::core::Exception ab ([SWS_DM_01807], SWS Diagnostics §8.51.4). Zu ihren direkten Interaktionspartnern zählen funktionale Diagnoseklassen des Moduls diag, welche Diagnoseanfragen analysieren und bei Fehlern Ausnahmen auslösen, sowie die aufrufende Anwendungssoftware, die solche Ausnahmen abfangen und verarbeiten muss. Deklariert ist die Klasse im Header ara/diag/diag_sovd_error_domain.h zur Erfüllung übergeordneter Architekturanforderungen ([SWS_DM_01808], SWS Diagnostics §8.51.4.1.1.1 „DiagSovdException“).

Lebenszyklus

Die Instanziierung von ara::diag::DiagSovdException erfolgt über einen Konstruktor, der zwingend einen ara::core::ErrorCode als Parameter err entgegennimmt ([SWS_DM_01808], SWS Diagnostics §8.51.4.1.1.1). Dieser Konstruktor ist als explicit deklariert, um implizite Konvertierungen von Fehlercodes in Ausnahmeobjekte zu verhindern, und als noexcept gekennzeichnet ([SWS_DM_01808]).

Hinsichtlich Robustheit und Nebenläufigkeit sichert die Spezifikation zu, dass die Konstruktion vollständig ausnahmesicher (exception safe) und thread-safe ist ([SWS_DM_01808]). Dadurch ist garantiert, dass die Fehlererzeugung selbst in nebenläufigen Diagnoseszenarien keine weiteren Ausnahmen oder Inkonsistenzen hervorruft. Der Lebenszyklus der Ausnahme folgt dem standardmäßigen Stack-Unwinding von C++: Das Objekt wird im Fehlerfall innerhalb einer Diagnosefunktion erzeugt, über Aufrufebenen weitergereicht und beim Verlassen des behandelnden Catch-Blocks determiniert zerstört.

Nutzungspfad

Der typische Ablauf bei der Verwendung von ara::diag::DiagSovdException gliedert sich in folgende Schritte:

  • Eine Anwendung initiiert eine SOVD-bezogene Diagnoseoperation an einer Schnittstelle des Moduls diag.
  • Die zuständige Diagnosekomponente stellt eine fehlerhafte Bedingung fest und erzeugt einen passenden ara::core::ErrorCode aus der SOVD-Fehlerdomäne ([SWS_DM_01808]).
  • Die Komponente konstruiert mittels explicit DiagSovdException(err) die Ausnahme und wirft diese ([SWS_DM_01808], [SWS_DM_01807]).
  • Die Anwendung fängt die Ausnahme über catch (const ara::diag::DiagSovdException& ex) oder polymorph über const ara::core::Exception& ab, um auf den Fehlerzustand zu reagieren.
Ablauf der Ausnahmebehandlung mit DiagSovdExceptionAnwendungDiagnoseklasseDiagSovdExceptionSOVD-Diagnoseaufruf durchführenSOVD-Fehlerbedingung feststellenara::core::ErrorCode erzeugenDiagSovdException(err) konstruierenthrow DiagSovdExceptioncatch (const DiagSovdException& ex)Fehler analysieren und behandeln

Sequenzdiagramm: Aufruf- und Behandlungsabfolge bei Auslösung einer DiagSovdException. Quellen: [SWS_DM_01807], [SWS_DM_01808].

Fehlerszenarien

Als Fehlertransporteur dient die Klasse selbst der Behandlung von Ausnahmezuständen ([SWS_DM_01807]). Als formale Vorbedingung für die Erzeugung gilt die Bereitstellung eines initialisierten ara::core::ErrorCode ([SWS_DM_01808]). Da der Konstruktor als noexcept deklariert ist, treten bei der Objekterzeugung selbst keine Ausnahmen auf ([SWS_DM_01808]).

Interpretation: Vermutlich kapselt die Instanz den übergebenen Fehlercode dauerhaft, sodass nachgelagerte Fehlerbehandler diesen über geerbte Funktionen von ara::core::Exception inspizieren können. Frage Q-332b95b96849e379 (offen) In Systemkonfigurationen mit deaktivierten C++-Ausnahmen dürfte die Diagnosekomponente alternative Fehlermechanismen bevorzugen, während DiagSovdException den dezidierten Pfad für Ausnahmebehandlungen darstellt.

Dieser Leitfaden basiert auf der Spezifikation AUTOSAR Adaptive Platform R25-11 und fasst die Anforderungen an die Ausnahmebehandlung von SOVD zusammen.

UML-Klassendiagramm

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

G nara__diag__DiagSovdException335 DiagSovdException + DiagSovdException() nara__core__Exception792 Exception nara__diag__DiagSovdException335->nara__core__Exception792 nstd__exception10 std::exception nara__core__Exception792->nstd__exception10

Konstruktoren und Destruktor

Construct a new DiagSovdException from an ErrorCode.

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

Dokumentation der Methoden

function DiagSovdException [SWS_DM_01808] Upstream: RS_AP_00119

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

Construct a new DiagSovdException from an ErrorCode.

Header-Datei#include "ara/diag/diag_sovd_error_domain.h"
Scopeclass ara::diag::DiagSovdException
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_01808
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01808@rel:R25-11#76e1ec2d
Content hash
76e1ec2d
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01808
Status: valid/unmigrated Version: rel:R25-11#e8244057 Versionshistorie & Revisions (1 transition, 4 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_01808@rel:R25-11#e8244057
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#76e1ec2d2026-09-30
  • R23-11rel:R23-11#62167f502026-10-14
  • R24-11rel:R24-11#e82440572026-10-14
  • R25-11rel:R25-11#e82440572026-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