Beheert foutcodes van het cluster ara::core, vertaalt deze naar foutmeldingen en gooit bijbehorende excepties.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 8500dff6850eHerkomstOpen vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
Beheert foutcodes van het cluster ara::core, vertaalt deze naar foutmeldingen en gooit bijbehorende excepties.
De klasse ara::core::CoreErrorDomain representeert het foutdomein voor fouten uit het functionele cluster ara::core en koppelt beschrijvende tekstberichten aan numerieke foutcodes [SWS_CORE_05243]. Bovendien maakt zij via ThrowAsException() het omzetten van foutcodes naar typespecifieke CoreException-excepties mogelijk [SWS_CORE_05244]. Aangezien alle opvragende methoden thread-safe en constexpr-construeerbaar zijn, is het domein geschikt voor efficiënt clusterbreed gebruik. Als C++-excepties in de toolchain zijn uitgeschakeld, neemt de exceptiemethode niet deel aan de overbelastingsresolutie.
Context
De klasse ara::core::CoreErrorDomain representeert het specifieke foutdomein voor alle fouttoestanden die hun oorsprong hebben in het functionele cluster ara::core. Zij is gedefinieerd als een finale specialisatie van ErrorDomain en voorkomt daarmee verdere afleiding. De klasse stelt via de methode Name() de unieke korte naam van het domein beschikbaar [SWS_CORE_05242]. Voor een consistente integratie in het AUTOSAR-foutafhandelingsmodel definieert CoreErrorDomain centrale type-aliassen: Errc verwijst als alias rechtstreeks naar de enumeratie CoreErrc[SWS_CORE_05231], terwijl Exception de alias vormt voor de bijbehorende basisexceptieklasse CoreException[SWS_CORE_05232]. Tot de belangrijkste interactiepartners behoren de generieke foutkapsels van het type ErrorCode, die een referentie naar het betreffende foutdomein houden, evenals uitvoerende componenten die fouttoestanden diagnosticeren of afhandelen.
Levenscyclus
Het creëren van een CoreErrorDomain vindt plaats via de parameterloze standaardconstructor constexpr CoreErrorDomain() noexcept[SWS_CORE_05241]. Omdat de constructor als constexpr en noexcept is gedeclareerd, kan de instantie reeds tijdens compileertijd zonder allocatiekosten of exceptiegevaar worden gecreëerd.
Interpretatie: Aangezien foutdomeinen in de AUTOSAR Adaptive-standaard staatloos zijn ontworpen en uitsluitend constante metadata en transformatielogica beschikbaar stellen, bestaat er in het systeem typisch gezien een globale of statische singleton-instantie die clusterbreed wordt benaderd. Vraag Q-7b4761bf124c5755 (open) De instantie blijft gedurende de gehele looptijd van het proces geldig. Wat betreft concurrency zijn de bewerkingen van de klasse gespecificeerd als thread-safe [SWS_CORE_05241], [SWS_CORE_05242], [SWS_CORE_05243], waardoor gelijktijdige bevragingen vanuit meerdere parallelle threads zonder aanvullende synchronisatiemaatregelen zijn toegestaan.
Gebruikspad
Tijdens bedrijf wordt CoreErrorDomain vooral in twee typische scenario's geraadpleegd door het runtime-systeem of door applicatiecode: voor tekstuele foutinspectie en voor exceptieafhandeling.
Als er sprake is van een opgetreden fout, kan via de lidfunctie Message() onder doorgifte van de numerieke foutcode het bijbehorende tekstbericht worden opgevraagd [SWS_CORE_05243]. De specificatie garandeert bindend dat deze functie nooit een null-pointer (nullptr) oplevert, zodat de geretourneerde const char* zonder gevaar kan worden gebruikt voor diagnose-uitvoer of logging. Indien een fout niet als retourwaarde moet worden afgehandeld, maar als C++-exceptie moet worden gepropageerd, dient hiervoor de methode ThrowAsException()[SWS_CORE_05244]. Deze neemt een ErrorCode-instantie in ontvangst, instantieert de corresponderende CoreException en gooit deze op de actuele aanroepstack.
Sequentiediagram: Typisch verloop voor het vertalen van foutcodes en het voorwaardelijk triggeren van excepties. Bronnen: [SWS_CORE_05243], [SWS_CORE_05244]
Foutscenario's
De functies Name() en Message() evenals de constructor zijn gedeclareerd als noexcept en geclassificeerd als exceptieveilig [SWS_CORE_05241], [SWS_CORE_05242], [SWS_CORE_05243]. Ze gooien zelfs onder foutcondities geen excepties en genereren geen eigen foutcodes.
Daarentegen is ThrowAsException() expliciet voorzien van noexcept(false) en aangemerkt als niet exceptieveilig, aangezien het deterministisch gooien van een exceptie (van het type CoreException) de primaire taak van deze interface vormt [SWS_CORE_05244]. Als centrale architectonische randvoorwaarde geldt: indien in de gebruikte toolchain respectievelijk de compilerinstellingen C++-excepties zijn uitgeschakeld, mag deze functie niet deelnemen aan de overbelastingsresolutie [SWS_CORE_05244]. Dit voorkomt compilatiefouten in systeemomgevingen die de fouttolerante embedded-benadering zonder C++-exceptieafhandeling volgen.
Deze handleiding is gegenereerd door een AI-systeem op basis van de specificatie R25-11.
Throw the exception type corresponding to the given ErrorCode.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: c5a4846a6615Herkomst
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
De lidfunctie ThrowAsException van de klasse ara::core::CoreErrorDomain (gedefinieerd in de header ara/core/core_error_domain.h) dient voor het synchroon genereren van een C++-exceptie op basis van een overgedragen foutcode [SWS_CORE_05244]. Als parameter accepteert de functie een referentie naar een constante instantie van ErrorCode (const ErrorCode &errorCode) [SWS_CORE_05244]. De methode heeft geen retourwaarde, maar werpt direct een exceptie van het type CoreException op, die het doorgegeven ErrorCode-object volledig inkapselt [SWS_CORE_05244].
Met betrekking tot uitvoeringscontext, concurrency en compiler-voorwaarden gelden de volgende vereisten:
Thread-safety: De functie is gespecificeerd als thread-safe (thread-safe) en kan dus veilig vanuit concurrente contexten worden aangeroepen [SWS_CORE_05244].
Exception safety: Het gedrag is formeel geclassificeerd als niet exceptieveilig (not exception safe), aangezien de functie is gedeclareerd met noexcept(false) en volgens opzet een exceptie genereert [SWS_CORE_05244].
Compilerbeperking: Als C++-excepties in de compiler-toolchain zijn gedeactiveerd, mag de methode volgens [SWS_CORE_10304] niet deelnemen aan overload resolution [SWS_CORE_05244].
Binnen de architectuur overschrijft (override) de methode de zuiver virtuele basisfunctie ThrowAsException van de abstracte klasse ara::core::ErrorDomain[SWS_CORE_00154]. Bij typisch gebruik wordt de functie niet direct op het domeinobject aangeroepen, maar geïnitieerd via de hulpmethode ErrorCode::ThrowAsException(), die de aanroep via this->Domain().ThrowAsException(*this) dynamisch doorstuurt naar het verantwoordelijke foutdomein [SWS_CORE_00519].
Deze gebruiksinstructie is gegenereerd door een AI op basis van de specificatie AUTOSAR Adaptive R25-11.
CoreException an exception containing the given ErrorCode
Hinweise: This function shall not participate in overload resolution when C++ exceptions are disabled in the compiler toolchain. As per [SWS_CORE_10304]
Request a governed re-review of this record. The record is not changed immediately.
gemini-3.8-flash-low· 2026-10-13 · Duits origineel