DEENESPTFRRUARHIKOZHNL

klasse ara::diag::DiagUdsNrcException

[SWS_DM_00527] Upstream: RS_AP_00119

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

Exception type thrown by Diag classes.

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

User GuideAI-GEGENEREERD

Dient als thread-safe uitzondering voor het signaleren en doorgeven van UDS-NRC-fouten in diagnoseklassen.
DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 6ef167bbc303 Herkomst Open vragen (2)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

Dient als thread-safe uitzondering voor het signaleren en doorgeven van UDS-NRC-fouten in diagnoseklassen.

De klasse ara::diag::DiagUdsNrcException dient als gestandaardiseerde uitzondering voor het signaleren van UDS-NRC-fouten door diagnoseklassen van het AUTOSAR Adaptive Platform (AUTOSAR_AP_SWS_Diagnostics §8.12.4 “Class: DiagUdsNrcException”). Bij het optreden van een overeenkomstige foutconditie wordt ze geïnstantieerd met een ara::core::ErrorCode, geworpen en door de aanroepende applicatie afgevangen voor foutafhandeling. Als essentiële randvoorwaarde garandeert haar constructor conform [SWS_DM_00528] volledige uitzonderingsveiligheid (noexcept) en thread-safety, waardoor een betrouwbare objectcreatie zelfs in gelijktijdige contexten gewaarborgd is.

Context

De klasse ara::diag::DiagUdsNrcException vormt in het AUTOSAR Adaptive Platform het centrale uitzonderingstype voor diagnoseklassen van module diag (AUTOSAR_AP_SWS_Diagnostics §8.12.4 “Class: DiagUdsNrcException”). Conform specificatie [SWS_DM_00527] definieert ze een gestandaardiseerde C++-uitzonderingsinterface die direct overerft van de basisuitzonderingsklasse ara::core::Exception. Haar primaire verantwoordelijkheid bestaat erin foutcondities uit de diagnosecontext, in het bijzonder negatieve responscodes (Negative Response Codes, NRC) van het UDS-protocol, als getypeerde uitzonderingen over te brengen via de programmeerinterface. De klasse communiceert daarbij nauw met ara::core::ErrorCode, die de concrete foutcode inkapselt, evenals met de aanroepende applicatielagen die diagnoseverzoeken indienen en eventuele fouten moeten afvangen ([SWS_DM_00528]). Door de declaratie in header ara/diag/diag_uds_nrc_error_domain.h is de uitzondering direct gekoppeld aan het bijbehorende UDS-NRC-foutdomein ([SWS_DM_00528]).
diag_uds_nrc_context diag_classes ara::diag-klassen nrc_exception ara::diag::DiagUdsNrcException diag_classes->nrc_exception maakt aan en gooit app Anwendungssoftware nrc_exception->app draagt fout over aan error_code ara::core::ErrorCode error_code->nrc_exception initialisiert

Contextdiagram: Integratie van DiagUdsNrcException in het samenspel tussen foutcode, diagnoseklassen en applicatiesoftware. Bronnen: [SWS_DM_00527], [SWS_DM_00528], AUTOSAR_AP_SWS_Diagnostics §8.12.4 “Class: DiagUdsNrcException”

Levenscyclus

De levenscyclus van een instantie van ara::diag::DiagUdsNrcException begint met haar expliciete instantiëring door een diagnoseklasse of een interne foutafhandelingsroutine. Conform [SWS_DM_00528] beschikt de klasse over een constructor explicit DiagUdsNrcException(ara::core::ErrorCode err) noexcept; die de onderliggende foutcode als parameter err accepteert. Deze constructor is uitdrukkelijk gedefinieerd als uitzonderingsveilig (exception safe) en niet-werpend (noexcept) ([SWS_DM_00528]), waardoor gegarandeerd wordt dat bij het aanmaken van het object in het foutpad geen secundaire uitzonderingen kunnen optreden. Bovendien is de creatie conform [SWS_DM_00528] geclassificeerd als thread-safe (thread-safe). Na de aanmaak wordt de uitzonderingsinstantie doorgaans op waarde geworpen via het C++-runtimesysteem. Het eigendom van het object blijft tijdens de stack-unwinding bij de runtime-omgeving totdat de uitzondering wordt gebonden en geëvalueerd in een passend catch-blok. Met het verlaten van het uitzonderingsafhandelingsblok eindigt de levenscyclus van het object door reguliere vernietiging.

Gebruikspad

Het typische gebruikspad omvat de detectie van een UDS-NRC-fout, de creatie van de uitzondering en de daaropvolgende evaluatie ervan door de applicatie:
  1. Een applicatiecomponent roept een diagnosefunctie of service-interface van een ara::diag-klasse aan.
  2. De diagnoseklasse stelt tijdens de verwerking vast dat het verzoek niet succesvol kan worden afgehandeld en dat er sprake is van een UDS-NRC, waarna ze een bijbehorende ara::core::ErrorCode genereert.
  3. Onder overdracht van deze foutcode wordt de uitzondering ara::diag::DiagUdsNrcException geïnstantieerd via haar constructor ([SWS_DM_00528]).
  4. De diagnoseklasse werpt het uitzonderingsobject op vanuit de uitvoeringscontext (AUTOSAR_AP_SWS_Diagnostics §8.12.4 “Class: DiagUdsNrcException”).
  5. De aanroepende applicatie vangt de uitzondering hetzij type-exact als ara::diag::DiagUdsNrcException ([SWS_DM_00527]), hetzij polymorf via de basisklasse ara::core::Exception af en benadert de foutinformatie.
Verloop van de exceptieafhandeling met DiagUdsNrcExceptionAnwendungDiag-KlasseDiagUdsNrcExceptionDiagnosefunctie uitvoerenUDS-NRC-Bedingung erkannt, ErrorCode erzeugtDiagUdsNrcException(err)throw DiagUdsNrcExceptioncatch en fout evalueren

Sequentiediagram: Typische volgorde van creatie, opwerpen en afvangen van de DiagUdsNrcException. Bronnen: [SWS_DM_00527], [SWS_DM_00528], AUTOSAR_AP_SWS_Diagnostics §8.12.4 “Class: DiagUdsNrcException”

Foutscenario's

Omdat ara::diag::DiagUdsNrcException zelf een middel voor foutsignalering is, hebben foutscenario's vooral betrekking op robuustheid en gelijktijdigheid bij de uitzonderingscreatie:
  • Robuuste objectcreatie: Door de specificatie als noexcept en exception safe ([SWS_DM_00528]) is uitgesloten dat bij de constructie een secundaire uitzondering wordt geworpen. Dit voorkomt fatale runtime-crashes zoals std::terminate in kritieke foutafhandelingspaden.
  • Geldigheid van de foutcode: Als voorwaarde voor de instantiëring moet een geldige ara::core::ErrorCode beschikbaar zijn ([SWS_DM_00528]). Deze is doorgaans afkomstig uit het door ara/diag/diag_uds_nrc_error_domain.h gedefinieerde foutdomein.
  • Parallelle diagnoseverwerking: Aangezien de constructor is gespecificeerd als thread-safe ([SWS_DM_00528]), mogen meerdere threads gelijktijdig diagnose-uitzonderingen creëren zonder dat er race conditions optreden bij de initialisatie van het uitzonderingsobject.

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

UML-klassendiagram

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

G nara__diag__DiagUdsNrcException343 DiagUdsNrcException + DiagUdsNrcException() nara__core__Exception792 Exception nara__diag__DiagUdsNrcException343->nara__core__Exception792 nstd__exception10 std::exception nara__core__Exception792->nstd__exception10

Constructors en destructor

Construct a new DiagException from an ErrorCode.

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

Documentatie van de methoden

functie DiagUdsNrcException [SWS_DM_00528] Upstream: RS_AP_00119

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

Construct a new DiagException from an ErrorCode.

Header-Datei#include "ara/diag/diag_uds_nrc_error_domain.h"
Scopeclass ara::diag::DiagUdsNrcException
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_00528
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00528@rel:R25-11#3598dca1
Content hash
3598dca1
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00528
Status: valid/unmigrated Version: rel:R25-11#55ae2ae1 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_00528@rel:R25-11#55ae2ae1
Point-in-Time History:
Recorded Revisions (7):
  • R25-11rel:R25-11#d0877d832026-09-30
  • R20-11rel:R20-11#cfe41a2e2026-10-14
  • R21-11rel:R21-11#cfe41a2e2026-10-14
  • R22-11rel:R22-11#b5842e552026-10-14
  • R23-11rel:R23-11#ccbb9a702026-10-14
  • R24-11rel:R24-11#55ae2ae12026-10-14
  • R25-11rel:R25-11#55ae2ae12026-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