DEENESPTFRRUARHIKOZHNL

classe ara::core::CoreException

[SWS_CORE_05211] Upstream: RS_AP_00130

class CoreException :            public Exception {...};

Exception type thrown for ara::core errors.

Header-Datei#include "ara/core/core_error_domain.h"
Forwarding-Header#include "ara/core/core_fwd.h"
Scopenamespace ara::core
Basisklasse(n)Exception

Guide utilisateurGÉNÉRÉ PAR IA

Sert de type d'exception pour signaler les erreurs du Core et encapsule un code d'erreur pour une gestion structurée des exceptions.
GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 2b622ea04d25 Provenance Questions ouvertes (2)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

Sert de type d'exception pour signaler les erreurs du Core et encapsule un code d'erreur pour une gestion structurée des exceptions.

La classe ara::core::CoreException sert de type d'exception central pour la transmission des erreurs provenant du domaine fonctionnel ara::core et dérive à cet effet de la classe de base Exception. L'instanciation s'effectue obligatoirement via le constructeur en lui passant un ErrorCode spécifique, qui encapsule la cause de l'erreur [SWS_CORE_05212]. Comme contrainte essentielle, l'implémentation garantit une sécurité totale vis-à-vis des threads (thread safety) et des exceptions (exception safety), ainsi qu'une garantie sans exception noexcept lors de la création [SWS_CORE_05212]. Les appelants interceptent l'exception afin de traiter de manière contrôlée l'état d'erreur contenu.

Contexte

La classe ara::core::CoreException sert de type d'exception central pour les erreurs survenant au sein du domaine fonctionnel ara::core. Conformément à la déclaration de la classe, elle dérive publiquement de la classe de base Exception. La tâche essentielle de CoreException consiste à transposer dans le modèle de traitement des exceptions de C++ un événement d'erreur survenu, décrit par un objet ErrorCode. Dans le contexte de la plateforme, la classe agit ainsi comme un pont entre le composant d'infrastructure détectant l'erreur et le code d'application ou de plateforme appelant. Lorsqu'une opération échoue dans ara::core et que l'interface prévoit une exception, CoreException est instanciée et signalée. Ce faisant, le constructeur reçoit, conformément à [SWS_CORE_05212], un objet concret de type ErrorCode qui encapsule la cause métier et le domaine de l'erreur survenue. L'intégration dans la hiérarchie de classes permet aux couches architecturales supérieures d'intercepter les erreurs soit de manière spécifique en tant que CoreException, soit de les traiter de manière générique via la classe de base Exception.

ErrorCode ErrorCode CoreException CoreException ErrorCode->CoreException initialisiert Exception Exception CoreException->Exception erbt von

Diagramme de contexte : relation de CoreException avec ErrorCode et la classe de base Exception. Sources : [SWS_CORE_05212]

Cycle de vie

Le cycle de vie d'une instance de CoreException débute dans le contexte de la détection d'erreur. La création s'effectue via le constructeur explicit CoreException(ErrorCode err) noexcept conformément à [SWS_CORE_05212]. Le mot-clé explicit empêche toute conversion implicite à partir d'un ErrorCode, forçant ainsi une création d'objet délibérée. Une caractéristique essentielle de la construction est sa spécification en tant que noexcept [SWS_CORE_05212] : l'instanciation elle-même ne peut déclencher aucune exception supplémentaire, ce qui garantit une génération fiable de l'exception, même dans des états système critiques. De plus, la sécurité vis-à-vis des exceptions est classée comme totalement sûre (exception safe) et l'opération est considérée comme thread-safe (thread-safe) [SWS_CORE_05212]. Après sa création, l'objet exception est habituellement transmis au moyen de throw. Pendant le déroulement de la pile (stack unwinding), l'exception est acheminée jusqu'à ce qu'elle soit liée par un gestionnaire d'exceptions approprié. Le cycle de vie prend fin à la sortie du bloc de capture, après quoi la destruction de l'objet exception s'accomplit de manière déterministe.

Parcours d'utilisation

Le chemin d'utilisation nominal de CoreException se divise en trois phases successives : diagnostic, levée et capture. Tout d'abord, un composant du module core identifie un écart par rapport au comportement attendu et instancie un ErrorCode correspondant. Ensuite, l'exception est créée en appelant le constructeur CoreException(err) [SWS_CORE_05212]. Immédiatement après, l'objet est levé dans le contexte d'exécution. Au niveau applicatif, l'appel est exécuté dans un bloc protégé. Si le cas d'exception se produit, un bloc catch intercepte l'instance – typiquement sous la forme d'une référence constante sur CoreException ou de manière polymorphe via la classe de base Exception. Dans le gestionnaire, l'erreur peut être analysée, journalisée ou corrigée. Comme le fichier d'en-tête #include "ara/core/core_error_domain.h" est prescrit conformément à [SWS_CORE_05212], la déclaration de la classe est mise à disposition de façon cohérente pour les modules d'application.

Scénarios d'erreur

Dans le domaine des scénarios d'erreur, CoreException sert elle-même de vecteur de signalement et ne lève aucune erreur secondaire pendant sa propre création. Comme le constructeur est déclaré comme noexcept [SWS_CORE_05212], le scénario d'un échec de construction est exclu. La spécification garantit une sécurité stricte vis-à-vis des exceptions et des threads [SWS_CORE_05212], de sorte que l'accès concurrent lors de la création reste également sans risque. Un scénario d'erreur critique survient au niveau du système lorsqu'une CoreException levée n'est interceptée par aucune portée supérieure, ce qui devrait conduire en C++ standard à l'appel de std::terminate. Les développeurs doivent donc s'assurer que les appels aux fonctions ara::core susceptibles de lever des exceptions sont encapsulés dans des blocs de traitement d'exceptions appropriés. Un autre scénario potentiel concerne la transmission au-delà des frontières de composants, où le ErrorCode contenu doit être correctement interprété afin d'engager des mesures correctives adéquates. Question Q-492683ca01bebc7d (ouverte)

Ce guide a été généré par un assistant de curation IA sur la base d’AUTOSAR R25-11.

Diagramme de classes UML

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

G nara__core__CoreException713 CoreException + CoreException() nara__core__Exception792 Exception nara__core__CoreException713->nara__core__Exception792 nstd__exception10 std::exception nara__core__Exception792->nstd__exception10

Constructeurs et destructeur

CoreException fonction

Construct a new CoreException from an ErrorCode.

explicit CoreException (ErrorCode err) noexcept;

Documentation des méthodes

fonction CoreException [SWS_CORE_05212] Upstream: RS_AP_00130

explicit CoreException (ErrorCode err) noexcept;

Construct a new CoreException from an ErrorCode.

Header-Datei#include "ara/core/core_error_domain.h"
Scopeclass ara::core::CoreException
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_CORE_05212
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CORE_05212@rel:R25-11#ffcb63f5
Content hash
ffcb63f5
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Core.pdf#nameddest=SWS_CORE_05212
Status: valid/unmigrated Version: rel:R25-11#fcccf313 Versionshistorie & Revisions (1 transition, 8 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_CORE_05212@rel:R25-11#fcccf313
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#89d8f3922026-09-30
  • R19-11rel:R19-11#7047abf42026-10-14
  • R20-11rel:R20-11#69aba1672026-10-14
  • R21-11rel:R21-11#69aba1672026-10-14
  • R22-11rel:R22-11#7a696c932026-10-14
  • R23-11rel:R23-11#cc26b8992026-10-14
  • R24-11rel:R24-11#fcccf3132026-10-14
  • R25-11rel:R25-11#fcccf3132026-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