DEENESPTFRRUARHIKOZHNL

class ara::diag::DiagOfferException

[SWS_DM_00985] Upstream: RS_AP_00119

class DiagOfferException :           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 der Fehlersignalisierung über Ausnahmen mit einem Fehlercode beim Bereitstellen von Diagnose-Diensten.
KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 3b24259852fb Herkunft Offene Fragen (3)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Dient der Fehlersignalisierung über Ausnahmen mit einem Fehlercode beim Bereitstellen von Diagnose-Diensten.

Die Klasse ara::diag::DiagOfferException dient als spezifischer C++-Ausnahmetyp, der von Diagnose-Klassen der AUTOSAR Adaptive Platform zur Signalisierung von Fehlern geworfen wird ([SWS_DM_00985]). Sie leitet von ara::core::Exception ab und wird über einen noexcept-Konstruktor unter Angabe eines ara::core::ErrorCode thread-sicher instanziiert ([SWS_DM_00986]). Die Ausnahme dürfte primär beim fehlschlagenden Anbieten von Diagnose-Diensten auftreten und muss von der aufrufenden Anwendung abgefangen werden, um einen unkontrollierten Prozessabbruch zu verhindern. Frage (offen)

Kontext

Die Klasse ara::diag::DiagOfferException ist ein zentraler Ausnahmetyp des Diagnose-Moduls innerhalb der AUTOSAR Adaptive Platform ([SWS_DM_00985], SWS Diagnostics §8.11.6 „Class: DiagOfferException“). Gemäß ihrer Spezifikation handelt es sich um eine Ausnahme, die von Diagnose-Klassen geworfen wird ("Exception type thrown by Diag classes"). Die Klasse leitet öffentlich von der Basisklasse ara::core::Exception ab und ist über den Header ara/diag/diag_error_domain.h in Anwendungen einzubinden ([SWS_DM_00986]).

Zu den primären Interaktionspartnern zählen funktionale Klassen des Diagnose-Managements, die zugrundeliegende Fehlerarchitektur von AUTOSAR Adaptive (repräsentiert durch ara::core::ErrorCode) sowie die anwendende Software, welche Diagnose-Dienste anbietet. Der Klassenname legt nahe, dass diese Ausnahme vermutlich dann zum Einsatz kommt, wenn das Anbieten oder Registrieren von Diagnose-Diensten durch entsprechende Diag-Klassen fehlschlägt (Interpretation). Frage Q-47046201c9fd38c3 (offen)

Lebenszyklus

Die Instanziierung von ara::diag::DiagOfferException erfolgt über ihren einzigen spezifizierten Konstruktor explicit DiagOfferException(ara::core::ErrorCode err) noexcept ([SWS_DM_00986], SWS Diagnostics §8.11.6.1.1.1 „DiagOfferException“). Dabei wird die Ausnahme direkt an einen konkreten Fehlercode gebunden. Da der Konstruktor als noexcept deklariert ist, ist garantiert, dass bei der Erzeugung des Ausnahmeobjekts selbst keine weiteren Fehler oder rekursiven Ausnahmen auftreten ([SWS_DM_00986]).

Hinsichtlich des Lebenszyklus unterliegt die Klasse den üblichen Mechanismen der C++-Ausnahmebehandlung: Sie wird auf dem Exception-Speicher der Laufzeitumgebung angelegt, über den Aufrufstapel transportiert und nach Abarbeitung des behandelnden catch-Blocks automatisch freigegeben. Gemäß Spezifikation ist die Konstruktion thread-safe und exception-safe ([SWS_DM_00986]). Das Ausnahmeobjekt besitzt nach seiner Erzeugung keine komplexen internen Zustandswechsel; es dürfte als unveränderliche Transportschale für den übergebenen Fehlercode fungieren (Interpretation). Frage Q-09c6e0ad610717e9 (offen)

Nutzungspfad

Der typische Ablauf bei der Verwendung von ara::diag::DiagOfferException gliedert sich in folgende Phasen:

  • Eine Anwendung ruft eine Methode einer Diagnose-Klasse auf, um einen Diagnose-Dienst oder Port bereitzustellen (Offer-Operation).
  • Die Diagnose-Klasse stellt während der Initialisierung oder Registrierung eine Fehlerbedingung fest und instanziiert einen passenden ara::core::ErrorCode.
  • Die Diagnose-Klasse konstruiert eine Instanz von ara::diag::DiagOfferException unter Übergabe dieses Fehlercodes ([SWS_DM_00986]) und wirft diese Ausnahme.
  • Die aufrufende Anwendungssoftware fängt die Ausnahme im Rahmen eines try-catch-Blocks ab.
  • Der Aufrufer extrahiert den Fehlercode aus der Ausnahme und stößt geeignete Ausfall- oder Wiederholungsstrategien an.
Fehlerbehandlung bei fehlgeschlagenem Anbieten via DiagOfferExceptionAnwendungDiag-KlasseDiagOfferExceptionDienst anbieten (Offer)Fehler festgestellt: ErrorCode erzeugenDiagOfferException(err)throw DiagOfferExceptioncatch (const DiagOfferException& e)ErrorCode auswerten und behandeln

Sequenzdiagramm: Typischer Ablauf bei der Signalisierung und Behandlung eines Fehlers über DiagOfferException. Quellen: [SWS_DM_00985], [SWS_DM_00986].

Fehlerszenarien

ara::diag::DiagOfferException dient selbst als Signalisierungsmechanismus für Fehlersituationen. Als Vorbedingung für die Instanziierung muss der aufrufenden Instanz ein gültiger ara::core::ErrorCode vorliegen ([SWS_DM_00986]). Da der Konstruktor als noexcept definiert ist, führt die Instanziierung unter keinen Umständen zu sekundären Ausnahmen ([SWS_DM_00986]).

Wird eine geworfene DiagOfferException von der anwendenden Software nicht abgefangen, führt dies standardmäßig zum Aufruf von std::terminate und somit zum unkontrollierten Absturz des Prozesses. Durch die Vererbung von ara::core::Exception ist es vermutlich vorgesehen, dass neben dem spezifischen Abfangen von ara::diag::DiagOfferException auch ein generischer Handler für ara::core::Exception greifen kann (Interpretation), um robuste Fehlertoleranz auf Prozessebene zu gewährleisten. Frage Q-d0cf602a077c4dae (offen)

Dieser Leitfaden basiert auf der Spezifikation AUTOSAR Adaptive R25-11 (Modul diag) und wurde für autodocs automatisiert generiert.

UML-Klassendiagramm

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

G nara__diag__DiagOfferException442 DiagOfferException + DiagOfferException() nara__core__Exception792 Exception nara__diag__DiagOfferException442->nara__core__Exception792 nstd__exception10 std::exception nara__core__Exception792->nstd__exception10

Konstruktoren und Destruktor

Construct a new DiagException from an ErrorCode.

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

Dokumentation der Methoden

function DiagOfferException [SWS_DM_00986] Upstream: RS_AP_00119

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

Construct a new DiagException from an ErrorCode.

Header-Datei#include "ara/diag/diag_error_domain.h"
Scopeclass ara::diag::DiagOfferException
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_00986
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00986@rel:R25-11#346e6070
Content hash
346e6070
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00986
Status: valid/unmigrated Version: rel:R25-11#5fd23a99 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_00986@rel:R25-11#5fd23a99
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#346e60702026-09-30
  • R23-11rel:R23-11#f79e89952026-10-14
  • R24-11rel:R24-11#5fd23a992026-10-14
  • R25-11rel:R25-11#5fd23a992026-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