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.
Encapsule les codes d'erreur spécifiques au domaine et les données supplémentaires en vue de leur évaluation ou de leur conversion en exceptions C++.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 747258139aa5ProvenanceQuestions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
Encapsule les codes d'erreur spécifiques au domaine et les données supplémentaires en vue de leur évaluation ou de leur conversion en exceptions C++.
La classe ara::core::ErrorCode encapsule une valeur d'erreur brute spécifique au domaine ainsi que son domaine d'erreur associé et des données de contexte optionnelles [SWS_CORE_00513]. Elle permet la lecture sécurisée vis-à-vis des exceptions des codes d'erreur et des textes descriptifs, ainsi que leur transmission au besoin sous forme d'exception C++ spécifique au type via ThrowAsException()[SWS_CORE_00518], [SWS_CORE_00519]. Si les exceptions C++ sont désactivées du côté de la chaîne d'outils, l'interface d'exception est automatiquement retirée de la résolution de surcharge [SWS_CORE_00519].
Contexte
La classe ara::core::ErrorCode sert d'encapsulation centrale pour les informations d'erreur dans l'AUTOSAR Adaptive Platform. Un code d'erreur regroupe toujours une valeur d'erreur brute spécifique au domaine de type ErrorDomain::CodeType avec un domaine d'erreur associé ara::core::ErrorDomain[SWS_CORE_00513]. Le domaine d'erreur définit le contexte sémantique dans lequel la valeur brute doit être interprétée et établit le lien entre le code numérique et la signification métier [SWS_CORE_00515]. De plus, un ErrorCode peut accueillir des données supplémentaires spécifiques au constructeur de type ErrorDomain::SupportDataType afin de fournir un contexte étendu sur l'apparition de l'erreur sans allocation dynamique de mémoire [SWS_CORE_00516].
Cycle de vie
L'instanciation d'un ErrorCode s'effectue soit par le biais d'un type énuméré, soit par l'indication explicite de la valeur brute et du domaine d'erreur. Pour les valeurs d'énumération à sûreté de typage, il existe un modèle de constructeur qui, par SFINAE, ne participe à la résolution de surcharge que si l'argument est un type enum C++ [SWS_CORE_00512]. En alternative, le constructeur direct accepte une valeur brute numérique, une référence vers le ErrorDomain compétent ainsi que des données supplémentaires optionnelles [SWS_CORE_00513].
Les deux constructeurs sont déclarés comme constexpr et noexcept. Cela garantit une totale sécurité vis-à-vis des exceptions lors de la création et autorise la construction dès la compilation [SWS_CORE_00512], [SWS_CORE_00513]. Interprétation : comme ErrorCode ne gère que des données élémentaires et une référence vers le domaine durable, la classe se comporte comme un type valeur léger pouvant être copié librement et lu d'un thread à l'autre. Question Q-8ac788b51fb75a1c (ouverte) Toutes les opérations d'observation sont spécifiées comme sûres pour les threads et sûres vis-à-vis des exceptions [SWS_CORE_00514], [SWS_CORE_00515].
Parcours d'utilisation
Un déroulement d'utilisation typique comprend la création lors de la détection d'un état d'erreur, l'inspection des métadonnées pertinentes par l'appelant ainsi que, si nécessaire, la transmission vers un traitement d'exception :
Création : l'erreur est construite via une valeur d'énumération spécifique au domaine et des données de contexte optionnelles [SWS_CORE_00512].
Identification : l'appelant interroge la valeur brute numérique au moyen de Value()[SWS_CORE_00514] et le domaine d'erreur associé via Domain()[SWS_CORE_00515].
Diagnostic : des données supplémentaires spécifiques au constructeur sont lues via SupportData()[SWS_CORE_00516], tandis que Message() fournit une description lisible par l'humain en tant que StringView[SWS_CORE_00518].
Déclenchement d'exception : si l'erreur doit être propagée dans une structure de contrôle basée sur des exceptions, l'appelant déclenche l'exception associée via ThrowAsException()[SWS_CORE_00519].
La classe ara::core::ErrorCode fait office de passerelle entre la gestion des erreurs sans exception et celle basée sur les exceptions. Les méthodes Value(), Domain(), SupportData() et Message() possèdent la garantie noexcept et peuvent être appelées sans risque d'erreurs consécutives, même en cas de pénurie de ressources [SWS_CORE_00514], [SWS_CORE_00515], [SWS_CORE_00516], [SWS_CORE_00518].
La méthode ThrowAsException(), explicitement déclarée comme noexcept(false) et not exception safe[SWS_CORE_00519], constitue un scénario d'erreur à part entière. Son comportement équivaut à l'appel this->Domain().ThrowAsException(*this) ; elle détermine le type d'exception adéquat via le ErrorDomain lié et lève une exception encapsulant l'instance actuelle de ErrorCode[SWS_CORE_00519]. Une contrainte essentielle réside dans le fait que ThrowAsException() ne participe pas à la résolution de surcharge si les exceptions C++ sont désactivées dans la chaîne d'outils du compilateur [SWS_CORE_00519].
Généré par l'IA autodocs sur la base d'AUTOSAR Adaptive Platform R25-11.
Construct a new ErrorCode instance with parameters
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : aa921d126307ProvenanceQuestions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
Le constructeur d'archétype ErrorCode instancie de manière synchrone une description d'erreur au sein de la classe ara::core::ErrorCode issue du fichier d'en-tête ara/core/error_code.h[SWS_CORE_00512]. Il prend une valeur de code d'erreur spécifique au domaine e d'un type énumération EnumT ainsi que des données supplémentaires optionnelles propres au constructeur data de type ErrorDomain::SupportDataType, initialisées vides par défaut [SWS_CORE_00512]. En tant que restriction essentielle, le constructeur ne participe à la résolution de surcharge par SFINAE que si EnumT est effectivement un type énumération [SWS_CORE_00512]. Contrairement à la surcharge alternative avec transmission explicite du domaine [SWS_CORE_00513], l'association au ErrorDomain approprié devrait vraisemblablement être déduite implicitement à partir du type EnumT. Question Q-83bc8268971748ff (ouverte)
En ce qui concerne la concurrence et la sécurité contre les erreurs, le constructeur est spécifié comme sûr pour les threads (thread-safe) ainsi qu'entièrement sûr vis-à-vis des exceptions (exception safe), et déclaré comme noexcept[SWS_CORE_00512]. Grâce à la qualification constexpr, l'instanciation peut s'effectuer dès la compilation dans des expressions constantes [SWS_CORE_00512]. Aucun message d'erreur DET ou DEM spécifique n'est défini pour la construction. Si l'erreur représentée doit être signalée comme une exception dans la suite du flux de contrôle, l'instance générée fournit la méthode ThrowAsException(), qui détermine et lève le type d'exception approprié [SWS_CORE_00519] ; de manière correspondante, le domaine d'erreur peut également lever directement l'exception [SWS_CORE_00154].
En interaction avec l'ensemble du système, les propriétés de l'objet peuvent être consultées via les méthodes Value()[SWS_CORE_00514], Domain()[SWS_CORE_00515], SupportData()[SWS_CORE_00516] et la représentation textuelle Message()[SWS_CORE_00518]. Lors de comparaisons de valeurs au moyen de operator==[SWS_CORE_00571] et operator!=[SWS_CORE_00572], seuls Value() et Domain() sont pris en compte, tandis que SupportData() n'est pas pris en considération [SWS_CORE_00571]. En outre, l'objet créé sert de base à l'encapsulation dans des objets d'exception standardisés tels que ara::core::Exception[SWS_CORE_00611] (accessible via Error()[SWS_CORE_00613]), ara::core::CoreException[SWS_CORE_05212] ou ara::core::FutureException[SWS_CORE_00412].
Remarque : cette note d'utilisation a été générée par une intelligence artificielle et se base exclusivement sur les spécifications de la version R25-11.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : f7a24bdeeeddProvenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
La fonction membre SupportData() de la classe ara::core::ErrorCode de l'en-tête #include "ara/core/error_code.h" renvoie des données de contexte complémentaires relatives à une erreur [SWS_CORE_00516]. La méthode est appelée de manière synchrone sur une instance, ne requiert aucun paramètre et renvoie une valeur de type ErrorDomain::SupportDataType[SWS_CORE_00516]. Grâce à sa déclaration comme constexpr et noexcept, l'appel est garanti sans exception et peut être évalué dès la compilation [SWS_CORE_00516].
Concernant la concurrence et la sécurité d'exécution, la méthode est spécifiée comme sûre pour les threads (thread-safe) ainsi que sûre vis-à-vis des exceptions (exception safe) [SWS_CORE_00516]. S'agissant d'un accès en lecture au contexte d'erreur interne, aucun état d'erreur ne survient, ce qui rend l'appel adapté également aux chemins d'exécution critiques et concurrents [SWS_CORE_00516].
Dans le cadre de l'interaction avec les autres interfaces de traitement des erreurs, SupportData() lit les données supplémentaires spécifiques au constructeur qui ont été optionnellement transmises au constructeur de ErrorCode via le paramètre data[SWS_CORE_00513]. Lors de la comparaison de deux codes d'erreur au moyen de operator==, il convient de noter que les instances ne sont considérées comme égales que sur la base exclusive des retours de Value() et Domain() ; la valeur de retour de SupportData() n'est expressément pas prise en compte pour la comparaison d'égalité [SWS_CORE_00571].
Cette note d'utilisation a été générée automatiquement à partir de la spécification 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.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 3205bd108ecbProvenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
La fonction membre ThrowAsException de la classe ara::core::ErrorCode sert à déclencher de manière synchrone une erreur survenue sous la forme d'une exception C++ ([SWS_CORE_00519]). La fonction ne prend aucun paramètre d'entrée et ne possède aucune valeur de retour, car le flux de contrôle normal est interrompu par la levée de l'exception.
Pour déterminer le type d'exception concret, la méthode délègue le déclenchement au domaine d'erreur associé selon le comportement this->Domain().ThrowAsException(*this) ([SWS_CORE_00519]). Via l'interface de la classe de base ara::core::ErrorDomain ([SWS_CORE_00154]), le domaine respectif détermine le type d'exception approprié conformément aux prescriptions de [SWS_CORE_10953]. L'exception déclenchée contient toujours l'instance de ErrorCode à l'origine du déclenchement. Les domaines concrets implémentent cela de manière spécifique :
ara::core::FutureErrorDomain lève une FutureException avec l'instance d'erreur transmise ([SWS_CORE_00444]).
En ce qui concerne la concurrence et les contraintes, ThrowAsException est spécifié comme sûr pour les threads ([SWS_CORE_00519]). La sécurité vis-à-vis des exceptions est déclarée avec not exception safe, et la signature comporte explicitement noexcept(false) ([SWS_CORE_00519]). Une restriction centrale de la chaîne d'outils réside dans le fait que la fonction ne participe pas à la résolution de surcharge lorsque les exceptions C++ sont désactivées dans le compilateur ([SWS_CORE_00519]).
Cette note d'utilisation est basée sur les spécifications AUTOSAR de la version 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 · Original allemand