Encapsulation of an error code. An ErrorCode contains a raw error code value and an Error Domain. The raw error code value is specific to this ErrorDomain.
Kapselt domeinspecifieke foutcodes en aanvullende gegevens in voor evaluatie of omzetting in C++-uitzonderingen.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 747258139aa5HerkomstOpen vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
Kapselt domeinspecifieke foutcodes en aanvullende gegevens in voor evaluatie of omzetting in C++-uitzonderingen.
De klasse ara::core::ErrorCode kapselt een domeinspecifieke ruwe foutwaarde in, samen met het bijbehorende foutdomein en optionele contextgegevens [SWS_CORE_00513]. Ze maakt het exception-safe uitlezen van foutcodes en beschrijvingsteksten mogelijk, evenals het naar behoefte doorsturen als typespecifieke C++-uitzondering via ThrowAsException()[SWS_CORE_00518], [SWS_CORE_00519]. Worden C++-uitzonderingen aan de toolchain-zijde gedeactiveerd, dan vervalt de uitzonderingsinterface automatisch uit de overbelastingsresolutie [SWS_CORE_00519].
Context
De klasse ara::core::ErrorCode dient als centrale inkapseling voor foutinformatie in het AUTOSAR Adaptive Platform. Een foutcode bundelt altijd een domeinspecifieke ruwe foutwaarde van het type ErrorDomain::CodeType met een bijbehorend foutdomein ara::core::ErrorDomain[SWS_CORE_00513]. Het foutdomein definieert de semantische context waarin de ruwe waarde moet worden geïnterpreteerd en legt het verband tussen de numerieke code en de functionele betekenis [SWS_CORE_00515]. Bovendien kan een ErrorCode fabrikantspecifieke aanvullende gegevens van het type ErrorDomain::SupportDataType opnemen om uitgebreide context over het ontstaan van de fout te bieden zonder dynamische geheugenallocatie [SWS_CORE_00516].
Levenscyclus
De instantiëring van een ErrorCode vindt plaats via een opsombaar type of via de expliciete opgave van de ruwe waarde en het foutdomein. Voor typespecifieke opsommingswaarden bestaat een constructortemplate die via SFINAE uitsluitend aan de overbelastingsresolutie deelneemt wanneer het argument een C++-enumtype is [SWS_CORE_00512]. Als alternatief accepteert de directe constructor een numerieke ruwe waarde, een referentie naar het verantwoordelijke ErrorDomain en optionele aanvullende gegevens [SWS_CORE_00513].
Beide constructors zijn gedeclareerd als constexpr en noexcept. Dit garandeert volledige exception safety bij het aanmaken en staat constructie reeds tijdens compileertijd toe [SWS_CORE_00512], [SWS_CORE_00513]. Interpretatie: Aangezien ErrorCode slechts elementaire gegevens en een referentie naar het langlevende domein beheert, gedraagt de klasse zich als een lichtgewicht waardetype dat vrij kan worden gekopieerd en thread-overschrijdend kan worden uitgelezen. Vraag Q-8ac788b51fb75a1c (open) Alle observerende operaties zijn gespecificeerd als thread-safe en exception-safe [SWS_CORE_00514], [SWS_CORE_00515].
Gebruikspad
Een typische gebruiksstroom omvat het aanmaken bij detectie van een fouttoestand, de inspectie van relevante metadata door de aanroeper en, indien nodig, het doorsturen naar een uitzonderingsafhandeling:
Aanmaken: De fout wordt geconstrueerd via een domeinspecifieke opsommingswaarde en optionele contextgegevens [SWS_CORE_00512].
Identificatie: De aanroeper vraagt de numerieke ruwe waarde op via Value()[SWS_CORE_00514] en het toegewezen foutdomein via Domain()[SWS_CORE_00515].
Diagnose: Aanvullende fabrikantspecifieke gegevens worden gelezen via SupportData()[SWS_CORE_00516], terwijl Message() een menselijk leesbare beschrijving als StringView levert [SWS_CORE_00518].
Uitzondering genereren: Moet de fout worden gepropageerd in een op uitzonderingen gebaseerde controlestructuur, dan genereert de aanroeper via ThrowAsException() de bijbehorende uitzondering [SWS_CORE_00519].
De klasse ara::core::ErrorCode fungeert als brug tussen uitzonderingsvrij en op uitzonderingen gebaseerd foutbeheer. De methoden Value(), Domain(), SupportData() en Message() hebben de garantie noexcept en kunnen zelfs bij schaarste aan resources zonder risico op vervolgfouten worden aangeroepen [SWS_CORE_00514], [SWS_CORE_00515], [SWS_CORE_00516], [SWS_CORE_00518].
Een op zichzelf staand foutscenario vormt de methode ThrowAsException(), die expliciet als noexcept(false) en not exception safe is gedeclareerd [SWS_CORE_00519]. Haar gedrag komt overeen met de aanroep this->Domain().ThrowAsException(*this); via het gekoppelde ErrorDomain bepaalt ze het passende uitzonderingstype en werpt ze een uitzondering op die de huidige ErrorCode-instantie inkapselt [SWS_CORE_00519]. Een wezenlijke randvoorwaarde is dat ThrowAsException() niet deelneemt aan de overbelastingsresolutie als C++-uitzonderingen in de compiler-toolchain zijn gedeactiveerd [SWS_CORE_00519].
Gegenereerd door autodocs-AI op basis van AUTOSAR Adaptive Platform R25-11.
Construct a new ErrorCode instance with parameters
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: aa921d126307HerkomstOpen vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
De sjabloonconstructor ErrorCode instantieert synchroon een foutbeschrijving binnen de klasse ara::core::ErrorCode uit het headerbestand ara/core/error_code.h[SWS_CORE_00512]. Deze neemt een domeinspecifieke foutcodewaarde e van een opsommingstype EnumT over, evenals optionele fabrikantspecifieke aanvullende gegevens data van het type ErrorDomain::SupportDataType, die standaard leeg worden geïnitialiseerd [SWS_CORE_00512]. Als wezenlijke restrictie neemt de constructor via SFINAE alleen dan deel aan de overloadresolutie wanneer EnumT daadwerkelijk een opsommingstype betreft [SWS_CORE_00512]. In tegenstelling tot de alternatieve overbelasting met expliciete domeinoverdracht [SWS_CORE_00513] wordt de toewijzing aan de passende ErrorDomain vermoedelijk impliciet afgeleid aan de hand van het type EnumT. Vraag Q-83bc8268971748ff (open)
Met betrekking tot gelijktijdigheid en foutveiligheid is de constructor gespecificeerd als thread-safe (thread-safe) en volledig uitzonderingsveilig (exception safe), en gedeclareerd als noexcept[SWS_CORE_00512]. Door de kwalificatie constexpr kan de instantiëring reeds tijdens compileertijd in constante expressies plaatsvinden [SWS_CORE_00512]. Specifieke DET- of DEM-foutmeldingen zijn voor de constructie niet gedefinieerd. Indien de gerepresenteerde fout in de verdere control flow als uitzondering moet worden gesignaleerd, stelt de gecreëerde instantie de methode ThrowAsException() beschikbaar, die het passende uitzonderingstype bepaalt en opwerpt [SWS_CORE_00519]; hiermee corresponderend kan ook het foutdomein de uitzondering direct werpen [SWS_CORE_00154].
In samenspel met het totale systeem kunnen de eigenschappen van het object worden opgevraagd via de methoden Value()[SWS_CORE_00514], Domain()[SWS_CORE_00515], SupportData()[SWS_CORE_00516] en de tekstweergave Message()[SWS_CORE_00518]. Bij waardevergelijkingen via operator==[SWS_CORE_00571] en operator!=[SWS_CORE_00572] worden uitsluitend Value() en Domain() meegenomen, terwijl SupportData() buiten beschouwing blijft [SWS_CORE_00571]. Verder dient het gecreëerde object als basis voor inkapseling in gestandaardiseerde exceptie-objecten zoals ara::core::Exception[SWS_CORE_00611] (uitleesbaar via Error()[SWS_CORE_00613]), ara::core::CoreException[SWS_CORE_05212] of ara::core::FutureException[SWS_CORE_00412].
Opmerking: deze gebruiksinstructie is gegenereerd door een kunstmatige intelligentie en is uitsluitend gebaseerd op de specificaties van release R25-11.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: f7a24bdeeeddHerkomst
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
De lidfunctie SupportData() van de klasse ara::core::ErrorCode uit de header #include "ara/core/error_code.h" retourneert aanvullende contextgegevens bij een fout [SWS_CORE_00516]. De methode wordt synchroon aangeroepen op een instantie, vereist geen parameters en retourneert een waarde van het type ErrorDomain::SupportDataType[SWS_CORE_00516]. Door de declaratie als constexpr en noexcept is de aanroep gegarandeerd vrij van uitzonderingen en kan deze reeds tijdens compileertijd worden geëvalueerd [SWS_CORE_00516].
Wat betreft gelijktijdigheid en uitvoeringsveiligheid is de methode gespecificeerd als thread-safe (thread-safe) en uitzonderingsveilig (exception safe) [SWS_CORE_00516]. Aangezien het om een leestoegang tot de interne foutcontext gaat, treden er geen fouttoestanden op, waardoor de aanroep ook geschikt is voor kritieke en gelijktijdige uitvoeringspaden [SWS_CORE_00516].
In samenspel met de overige interfaces van de foutafhandeling leest SupportData() die fabrikantspecifieke aanvullende gegevens uit die optioneel via de parameter data aan de constructor van ErrorCode zijn meegegeven [SWS_CORE_00513]. Bij het vergelijken van twee foutcodes door middel van operator== moet in acht worden genomen dat instanties uitsluitend op basis van de retourwaarden van Value() en Domain() als gelijk worden beoordeeld; de retourwaarde van SupportData() wordt uitdrukkelijk niet gebruikt voor de gelijkheidsvergelijking [SWS_CORE_00571].
Deze gebruiksinstructie is automatisch gegenereerd op basis van de specificatie AUTOSAR Adaptive R25-11.
This function will determine the appropriate exception type for this ErrorCode and throw it. The thrown exception will contain this ErrorCode.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 3205bd108ecbHerkomst
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
De memberfunctie ThrowAsException van de klasse ara::core::ErrorCode dient om een opgetreden fout synchroon te triggeren als C++-exceptie ([SWS_CORE_00519]). De functie accepteert geen overdrachtsparameters en heeft geen retourwaarde, aangezien de reguliere control flow wordt onderbroken door het werpen van de exceptie.
Om het concrete exceptietype te bepalen, delegeert de methode het triggeren aan het toegewezen foutdomein conform het gedrag this->Domain().ThrowAsException(*this) ([SWS_CORE_00519]). Via de interface van de basisklasse ara::core::ErrorDomain ([SWS_CORE_00154]) bepaalt het desbetreffende domein het passende exceptietype volgens de voorschriften van [SWS_CORE_10953]. De getriggerde exceptie bevat altijd de triggerende ErrorCode-instantie. Concrete domeinen implementeren dit specifiek:
ara::core::FutureErrorDomain werpt een FutureException met de meegegeven foutinstantie ([SWS_CORE_00444]).
Met betrekking tot gelijktijdigheid en randvoorwaarden is ThrowAsException gespecificeerd als thread-safe ([SWS_CORE_00519]). De uitzonderingsveiligheid is gedeclareerd als not exception safe, en de signatuur vertoont expliciet noexcept(false) ([SWS_CORE_00519]). Een centrale restrictie van de toolchain is dat de functie niet deelneemt aan overbelastingsresolutie wanneer C++-excepties in de compiler zijn uitgeschakeld ([SWS_CORE_00519]).
Deze gebruiksinstructie is gebaseerd op de AUTOSAR-specificaties van release R25-11.
Any exception of the type determined by the associated ErrorDomain as defined in [SWS_CORE_10953]
Hinweise: This function shall not participate in overload resolution when C++ exceptions are disabled in the compiler toolchain. Behaves as if this->Domain().ThrowAsException(*this).
Request a governed re-review of this record. The record is not changed immediately.
gemini-3.8-flash-low· 2026-10-13 · Duits origineel