DEENESPTFRRUARHIKOZHNL

klasse ara::diag::DiagReportingException

[SWS_DM_00987] Upstream: RS_AP_00119

class DiagReportingException :              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 GuideAI-GEGENEREERD

Signaleert fouten bij diagnoseoperaties synchroon als uitzondering met foutcode aan de aanroeper.
DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: a149cf644e7f Herkomst Open vragen (2)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

Signaleert fouten bij diagnoseoperaties synchroon als uitzondering met foutcode aan de aanroeper.

De uitzonderingsklasse ara::diag::DiagReportingException dient voor de synchrone signalering van fouttoestanden die optreden bij operaties binnen diagnoseklassen van het Adaptive Platform (AUTOSAR_AP_SWS_Diagnostics §8.11.8 “Class: DiagReportingException”). Ze wordt expliciet geïnstantieerd met een specifieke ara::core::ErrorCode en transporteert deze naar de aanroepende applicatie voor analyse van de foutoorzaak [SWS_DM_00988]. Als centrale randvoorwaarde is de bijbehorende constructor gespecificeerd als noexcept, exception safe en thread-safe, wat een foutloze creatie garandeert, zelfs in gelijktijdige uitvoeringscontexten. Onbehandelde instanties moeten worden vermeden, aangezien ze leiden tot onmiddellijke beëindiging van het programma.

Context

De klasse ara::diag::DiagReportingException vormt de centrale uitzonderingsklasse voor meldings- en rapportageprocessen binnen het functionele cluster Diagnostics (AUTOSAR_AP_SWS_Diagnostics §8.11.8 “Class: DiagReportingException”). Ze is gedefinieerd als een publieke specialisatie van ara::core::Exception en representeert specifieke fouttoestanden die optreden tijdens de interactie met diagnoseklassen [SWS_DM_00987]. In een AUTOSAR Adaptive-applicatie fungeert de uitzondering als schakel tussen de interne diagnoseservices en de aanroepende applicatiesoftware: treedt tijdens een diagnostische melding een fout op, dan kapselt DiagReportingException deze toestand in en transporteert deze synchroon via de call-stack naar de aanroeper. Tot de primaire interactiepartners behoren de diagnosegerelateerde API-klassen van de module diag, die de uitzondering in geval van een fout instantiëren en opwerpen, evenals bovenliggende foutafhandelingsroutines van de applicatie die de diagnosefout afvangen en verwerken.

Levenscyclus

De instantiëring van ara::diag::DiagReportingException vindt expliciet plaats door het doorgeven van een foutcode van het type ara::core::ErrorCode aan de constructor [SWS_DM_00988]. De declaratie van de constructor als explicit voorkomt impliciete conversies van foutcodes naar uitzonderingsobjecten en waarborgt dat uitzonderingsinstanties altijd bewust worden gecreëerd [SWS_DM_00988].

Aangezien de constructor is voorzien van de specificatie noexcept, wordt gegarandeerd dat bij de objectcreatie zelf geen verdere uitzonderingen kunnen optreden [SWS_DM_00988]. Dit is essentieel voor foutpaden om een opeenvolging van uitzonderingen tijdens de foutafhandeling te voorkomen. Bovendien is het constructieproces expliciet geclassificeerd als uitzonderingsveilig (exception safe) en thread-safe [SWS_DM_00988]. Meerdere threads kunnen zodoende parallel en zonder onderlinge blokkades afzonderlijke uitzonderingsobjecten aanmaken.

De levenscyclus van de uitzondering is gekoppeld aan de C++-stack-unwinding: na creatie op de call-stack wordt het object via het throw-mechanisme doorgegeven aan het verantwoordelijke catch-blok. Bij het verlaten van de uitzonderingshandler eindigt de levensduur van het object en worden de gebruikte resources automatisch vrijgegeven.

Gebruikspad

Het reguliere gebruikspad vangt aan zodra een diagnostische melding of operatie binnen het Adaptive-platform mislukt. In het typische verloop herkent de uitvoerende diagnoseklasse een ontoelaatbare conditie en genereert de passende ara::core::ErrorCode. In plaats van de fout louter als retourwaarde door te geven, wordt in het synchrone uitzonderingspad een object van het type ara::diag::DiagReportingException geconstrueerd en geworpen [SWS_DM_00987].

Exceptieafhandeling met DiagReportingExceptionAnwendungara::diag KomponenteDiagReportingExceptionDiagnoseoperation aufrufenFehlerzustand erkennenara::core::ErrorCode erzeugenConstructie met ErrorCodeExceptie opwerpen (throw)catch (const DiagReportingException&)Fehlercode auswerten

Sequentiediagram: Typisch verloop van het creëren van uitzonderingen en foutafhandeling met DiagReportingException. Bronnen: [SWS_DM_00987], [SWS_DM_00988], AUTOSAR_AP_SWS_Diagnostics §8.11.8 “Class: DiagReportingException”.

Aan de ontvangende zijde vangt de applicatielogica de uitzondering af. Dit gebeurt bij voorkeur via referentie naar constante objecten (const ara::diag::DiagReportingException& of polymorf via const ara::core::Exception&). Vervolgens extraheert de handler de ingebedde ara::core::ErrorCode om de exacte foutoorzaak te bepalen en passende herstelmaatregelen te initiëren.

Foutscenario's

Foutscenario's in verband met ara::diag::DiagReportingException betreffen vooral de interpretatie van de doorgegeven foutgegevens en het uitblijven van een correcte foutafhandeling.

De constructor vereist dwingend een geldige ara::core::ErrorCode [SWS_DM_00988]. Door het opnemen van het headerbestand ara/diag/diag_error_domain.h [SWS_DM_00988] is de doorgegeven foutcode vermoedelijk primair afkomstig uit het specifieke diagnosefoutdomein. Vraag Q-cb8a197542857807 (open) Een primair foutscenario in de applicatiearchitectuur ligt in het onvolledig afvangen van de uitzondering: wordt een geworpen DiagReportingException langs de call-stack niet afgehandeld door een passend catch-blok, dan leidt dit onvermijdelijk tot het aanroepen van std::terminate en daarmee tot de crash van het desbetreffende platformproces. Aangezien de constructor zelf als noexcept is gedeclareerd [SWS_DM_00988], kan de instantiëring van de uitzondering niet mislukken door een intern gebrek aan resources. Ontwikkelaars moeten er daarom voor zorgen dat aanroepende componenten voorbereid zijn op het optreden van DiagReportingException, in het bijzonder wanneer API's worden gebruikt die fouten via uitzonderingen in plaats van ara::core::Result signaleren.

Deze handleiding is gegenereerd door een AI op basis van de specificatie AUTOSAR Adaptive R25-11.

UML-klassendiagram

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

G nara__diag__DiagReportingException911 DiagReportingException + DiagReportingException() nara__core__Exception792 Exception nara__diag__DiagReportingException911->nara__core__Exception792 nstd__exception10 std::exception nara__core__Exception792->nstd__exception10

Constructors en destructor

Construct a new DiagException from an ErrorCode.

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

Documentatie van de methoden

functie DiagReportingException [SWS_DM_00988] Upstream: RS_AP_00119

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

Construct a new DiagException from an ErrorCode.

Header-Datei#include "ara/diag/diag_error_domain.h"
Scopeclass ara::diag::DiagReportingException
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_00988
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00988@rel:R25-11#b5dce03d
Content hash
b5dce03d
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00988
Status: valid/unmigrated Version: rel:R25-11#9465de9a 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_00988@rel:R25-11#9465de9a
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#431097f22026-09-30
  • R23-11rel:R23-11#85d295e12026-10-14
  • R24-11rel:R24-11#9465de9a2026-10-14
  • R25-11rel:R25-11#9465de9a2026-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