Dient als basisklasse voor alle AUTOSAR-uitzonderingen en kapselt een thread-veilige foutcode in voor evaluatie.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: d4eaa8466f70HerkomstOpen vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
Dient als basisklasse voor alle AUTOSAR-uitzonderingen en kapselt een thread-veilige foutcode in voor evaluatie.
De klasse ara::core::Exception dient als gemeenschappelijke basisklasse voor alle uitzonderingstypen van het Adaptive Platform en bedt een ErrorCode in de gestandaardiseerde C++-uitzonderingshiërarchie in [SWS_CORE_00611]. Bij het optreden van fouten transporteert deze klasse deze foutcode thread-veilig naar een handler, die deze via Error() of de afgeleide standaardmethode what() kan evalueren [SWS_CORE_00613]. Alle bewerkingen zijn strikt uitzonderingsveilig en gedeclareerd als noexcept. Om onbedoelde object slicing bij afgeleide typen uit te sluiten, zijn kopieerbewerkingen protected uitgevoerd.
Context
De klasse ara::core::Exception dient als gemeenschappelijke basisklasse voor alle uitzonderingstypen binnen het AUTOSAR Adaptive Platform. Zij slaat de brug tussen de uitzonderingsafhandeling van de C++-standaardbibliotheek en het AUTOSAR-foutmodel: enerzijds leidt zij publiek af van std::exception en overschrijft zij de virtuele lidfunctie what()[SWS_CORE_00612] daarvan, anderzijds transporteert zij een ingebed foutobject van het type ara::core::ErrorCode[SWS_CORE_00611], [SWS_CORE_00613].
De hoofdverantwoordelijkheid van ara::core::Exception bestaat uit het gestructureerd beschikbaar stellen van foutinformatie over aanroepgrenzen heen in geval van een uitzondering. Interpretatie: de klasse is vermoedelijk ontworpen als gemeenschappelijke wortel voor domeinspecifieke uitzonderingsklassen van het platform; de kopieerbewerkingen ervan zijn gespecificeerd als protected om onbedoelde object slicing bij afgeleide instanties te voorkomen [SWS_CORE_00614], [SWS_CORE_00618]. Vraag Q-20ffec7888b9e724 (open)
De creatie van een ara::core::Exception vereist dwingend de expliciete opgave van een foutcode bij het aanroepen van de constructor [SWS_CORE_00611]. Deze constructor is gedefinieerd als noexcept en werpt zodoende zelf geen uitzonderingen.
De eigendomsverhoudingen en kopieermogelijkheden volgen strikte beschermingsregels: zowel de kopieerconstructor [SWS_CORE_00618] als de kopieertoekenningsoperator [SWS_CORE_00614] hebben de toegangsmodificator protected. Dit voorkomt dat polymorfe subklassen via interfaces van de basisklasse onvolledig worden gekopieerd. Voor de overdracht van resources staan daarentegen de verplaatsingsconstructor [SWS_CORE_00615] en de verplaatsingstoekenningsoperator met referentie-qualifier &[SWS_CORE_00616] publiek beschikbaar als noexcept=default.
De vernietiging geschiedt deterministisch via de virtuele destructor [SWS_CORE_00617], die gespecificeerd is als noexcept override=default en zorgt voor het correct opschonen van afgeleide instanties. Gelijktijdige leestoegangen tot de methoden alsmede de instantiëring zijn aangemerkt als thread-veilig [SWS_CORE_00611], [SWS_CORE_00612], [SWS_CORE_00613].
Gebruikspad
Het reguliere verloop strekt zich uit van de foutdetectie via het opwekken van de uitzondering tot aan de gestructureerde diagnose in de uitzonderingshandler:
Creatie en werpen: een component stelt een foutsituatie vast, instantieert de exceptie met de passende ErrorCode[SWS_CORE_00611] en werpt het object via throw.
Opvangen: een bovenliggend blok vangt het object op via referentie (bijvoorbeeld als const ara::core::Exception& of polymorf als const std::exception&).
Gestandaardiseerde tekstuitvoer: via what() kan een tekstuele toelichting als nul-getermineerde tekenreeks worden verkregen [SWS_CORE_00612]. Alle levensduurgaranties van std::exception::what blijven daarbij volledig behouden.
Gedetailleerde foutcontrole: via de lidfunctie Error() verkrijgt de handler toegang tot een constante referentie van het ingebedde ErrorCode[SWS_CORE_00613], om systeemspecifieke foutdomeinen en codes machinaal te evalueren.
Levensduurvoorwaarden: de door Error() beschikbaar gestelde referentie bindt aan het uitzonderingsobject [SWS_CORE_00613]; deze mag niet worden gebruikt voorbij de levensduur van de Exception. Voor de retourwaarde van what() gelden de levensduurregels van de standaardbibliotheek [SWS_CORE_00612].
Voorkoming van ongeldige objecttoestanden: door de inkapseling van de kopieerbewerkingen in het protected-bereik wordt voorkomen dat polymorfe subklassen per ongeluk inconsistent worden door slicing [SWS_CORE_00614], [SWS_CORE_00618].
Deze handleiding is gebaseerd op de specificatie AUTOSAR Adaptive Platform Release R25-11.
Return the explanatory string. This function overrides the virtual function std::exception:: what. All guarantees about the lifetime of the returned pointer that are given for std::exception::what are preserved. ≙ std::exception::
Return the explanatory string. This function overrides the virtual function std::exception:: what. All guarantees about the lifetime of the returned pointer that are given for std::exception::what are preserved.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 1b4e9bb17f9aHerkomst
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
De lidfunctie what van de klasse ara::core::Exception dient voor het synchroon opvragen van een verklarende tekenreeks over de opgetreden fout [SWS_CORE_00612]. Deze overschrijft de virtuele functie std::exception::what en retourneert een pointer naar een null-getermineerde tekenreeks (const char*) [SWS_CORE_00612].
Gebruik en levensduur
De functie verwacht geen overdrachtsparameters. Wat betreft de geldigheid van de geretourneerde pointer blijven alle garanties behouden die gelden voor std::exception::what[SWS_CORE_00612]. Om de functie te kunnen gebruiken, dient het headerbestand ara/core/exception.h te worden ingevoegd [SWS_CORE_00612].
Foutafhandeling en gelijktijdigheid
Exceptieveiligheid: De operatie is gedeclareerd als noexcept en gespecificeerd als exceptieveilig (exception safe); deze werpt zelf geen excepties op [SWS_CORE_00612].
Gelijktijdigheid: De uitvoering is gespecificeerd als thread-safe (thread-safe) [SWS_CORE_00612]. Aanroepen kunnen zodoende veilig vanuit parallelle threads plaatsvinden.
Deze gebruiksinstructie is geautomatiseerd gegenereerd.
gemini-3.8-flash-low· 2026-10-13 · Duits origineel