Définit le domaine d'erreur pour les erreurs de contrôle de la protection End-to-End dans la communication Adaptive.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : bfe73c7b7e47ProvenanceQuestions ouvertes (2)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
Définit le domaine d'erreur pour les erreurs de contrôle de la protection End-to-End dans la communication Adaptive.
La classe ara::com::e2e::ComE2EErrorDomain définit le domaine d'erreur pour les erreurs de la protection End-to-End dans le Communication Management d'AUTOSAR Adaptive et associe des codes d'erreur de l'énumération ComE2EErrc ([SWS_CM_12504]). Si un contrôle E2E côté serveur échoue, un ara::core::ErrorCode de ce domaine est transporté dans la réponse d'erreur et mis à disposition côté client via ara::core::Result ([SWS_CM_00033]). La classe sans état et sûre vis-à-vis des exceptions permet de traiter les erreurs au choix par valeur ou via ThrowAsException(), cette méthode d'exception n'étant pas disponible lorsque les exceptions du compilateur C++ sont désactivées ([SWS_CM_12509]).
Contexte
La classe ara::com::e2e::ComE2EErrorDomain définit le domaine d'erreur pour la protection End-to-End (E2E) au sein du Communication Management (ara::com) de l'AUTOSAR Adaptive Platform. Elle dérive de manière finale de la classe de base ara::core::ErrorDomain et encapsule les erreurs spécifiques au domaine survenant lors de la validation E2E des messages.
Dans le modèle de communication, ComE2EErrorDomain agit comme identifiant et traducteur central pour les états d'erreur lors des interactions protégées par E2E. Via les alias de type Errc ([SWS_CM_12504]) et Exception ([SWS_CM_12505]), le domaine d'erreur lie l'énumération spécifique au type ComE2EErrc ainsi que le type d'exception dérivé ComE2EException à l'écosystème spécifique aux erreurs de ara::core. Si l'environnement d'exécution du serveur détecte une protection défaillante lors de la vérification d'une requête de méthode au moyen de E2E_check ([SWS_CM_90421]), une réponse d'erreur E2E est transmise. Conformément à [SWS_CM_00033], la charge utile de ce message de réponse transporte un ara::core::ErrorCode du domaine ara::com::e2e::ComE2EErrorDomain, dont la valeur d'erreur correspond au résultat de E2E_check (AUTOSAR_AP_SWS_CommunicationManagement §7.4.1.2.4 « Payload of the E2E Error Response »). Côté client, cette erreur est désérialisée après le retrait de l'en-tête E2E ([SWS_CM_90475]) ([SWS_CM_90476], [SWS_CM_10473]) et transmise à l'application en tant qu'état d'erreur au sein d'un ara::core::Result (AUTOSAR_AP_SWS_CommunicationManagement §7.4.1.2.5 « Deserializing the payload »).
La création d'un objet d'instance s'effectue via le constructeur par défaut constexpr ComE2EErrorDomain() noexcept ([SWS_CM_12506]). Grâce à la qualification en constexpr, le domaine d'erreur peut être construit dès la compilation. Il devrait généralement être mis à disposition sous la forme d'un singleton immuable à l'échelle du processus, de sorte que les références vers le domaine restent valides pendant toute la durée d'exécution du programme. Question Q-bd1ba0230650e246 (ouverte) Comme la classe est déclarée en tant que final, aucune dérivation supplémentaire n'est autorisée.
La classe ne gère aucun état modifiable et offre une sécurité totale vis-à-vis des exceptions ([SWS_CM_12506]). Les méthodes d'inspection Name() ([SWS_CM_12507]) et Message() ([SWS_CM_12508]) sont déclarées comme const ainsi que noexcept. L'accès concurrent en lecture à travers plusieurs threads d'exécution est ainsi garanti sûr au niveau des threads (thread-safe) et exempt de surcoûts de synchronisation.
Parcours d'utilisation
Le chemin d'utilisation typique s'inscrit dans le cadre de la transmission et de l'évaluation côté client des vérifications E2E ayant échoué :
Vérification et génération d'erreur : lors de la réception d'une requête protégée par E2E, le serveur exécute la validation au moyen de E2E_check ([SWS_CM_90421]). Si cette vérification échoue, le middleware sérialise une réponse d'erreur dont la charge utile contient un ara::core::ErrorCode avec ara::com::e2e::ComE2EErrorDomain ([SWS_CM_00033]).
Diagnostic d'erreur : l'Adaptive Application vérifie le ara::core::Result. Pour la journalisation des erreurs, Name() fournit l'identifiant du domaine ([SWS_CM_12507]), tandis que Message() renvoie le texte lisible par l'homme associé au code numérique concret ([SWS_CM_12508]).
Traitement des erreurs : l'application peut soit évaluer l'erreur par valeur, soit lever une exception spécifique au type via ThrowAsException() lorsque la gestion des exceptions est activée ([SWS_CM_12509]).
Si une erreur E2E survient lors de la validation, celle-ci est identifiée par l'énumération ComE2EErrc, qui est disponible via l'alias de type Errc de la classe ([SWS_CM_12504]). Les codes d'erreur dans ComE2EErrc devraient correspondre directement aux valeurs de résultat définies de E2E_check. Question Q-07fc2c01567ac537 (ouverte)
Pour propager l'erreur par le biais d'exceptions C++, la méthode ThrowAsException() instancie une exception du type ara::com::e2e::ComE2EException (alias Exception, [SWS_CM_12505]) et la lève ([SWS_CM_12509]). La méthode est déclarée comme noexcept(false). Si les exceptions C++ sont désactivées dans la chaîne d'outils du compilateur, ThrowAsException() ne participe pas à la résolution de surcharge conformément à [SWS_CM_12509]. Dans les systèmes sans prise en charge des exceptions, le traitement des erreurs doit par conséquent impérativement s'effectuer par le biais de l'inspection basée sur les valeurs de ara::core::Result et ara::core::ErrorCode.
Ce guide est basé sur la spécification AUTOSAR Adaptive R25-11 et a été généré automatiquement.
Creates a new instance of ara::com::e2e::ComE2EException from errorCode and throws it. As per [SWS_CORE_10304], this function does not participate in overload resolution when C++ exceptions are disabled in the compiler toolchain.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : e33607e23f70ProvenanceQuestions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
La fonction membre Name de la classe ara::com::e2e::ComE2EErrorDomain ([SWS_CM_12507]) est appelée de manière synchrone et sans paramètre de transmission. Elle sert à l'identification univoque du domaine d'erreur et renvoie un pointeur vers une constante de chaîne de caractères statique (const char *) représentant le nom du domaine d'erreur de communication E2E ([SWS_CM_12507]). La déclaration de l'interface est fournie via le fichier d'en-tête ara/com/e2e/e2e_error_domain.h ([SWS_CM_12507]).
En ce qui concerne le traitement des erreurs, la fonction est spécifiée comme noexcept et exception safe ([SWS_CM_12507]). Elle ne lève donc aucune exception et n'échoue pas au moment de l'exécution ; aucun code d'erreur spécifique ni mécanisme de traitement des erreurs n'est prévu pour cet appel.
Concernant la concurrence et les contraintes, il n'existe aucune restriction particulière d'appel ou de cycle de vie. Étant donné que la méthode effectue uniquement la lecture d'une chaîne de caractères immuable, l'implémentation devrait être totalement réentrante et sûre pour des appels concurrents provenant de threads quelconques. Question Q-c8158d40c80ce9c5 (ouverte)
Creates a new instance of ara::com::e2e::ComE2EException from errorCode and throws it. As per [SWS_CORE_10304], this function does not participate in overload resolution when C++ exceptions are disabled in the compiler toolchain.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : d2262a26cd80ProvenanceQuestions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
La fonction membre ThrowAsException du domaine d'erreur ara::com::e2e::ComE2EErrorDomain sert, conformément à [SWS_CM_12509], à encapsuler un code d'erreur transmis errorCode de type ara::core::ErrorCode dans une exception C++ typée du type ara::com::e2e::ComE2EException et à la déclencher de manière synchrone. La fonction ne possède pas de valeur de retour (void) et est fournie via l'en-tête ara/com/e2e/e2e_error_domain.h (AUTOSAR_AP_SWS_CommunicationManagement §8.15.3.2.2.3 « ThrowAsException »).
Gestion des erreurs et conditions limites
La méthode est déclarée avec noexcept(false) et explicitement spécifiée comme non sûre face aux exceptions (« not exception safe »), car son déroulement normal consiste à lever l'exception. Une contrainte majeure côté compilateur est définie par [SWS_CORE_10304] : si les exceptions C++ sont désactivées dans la chaîne d'outils du compilateur, cette fonction ne prend pas part à la résolution des surcharges. Les appelants doivent donc s'assurer que le traitement des erreurs basé sur les exceptions est pris en charge et actif sur le système cible.
gemini-3.8-flash-low· 2026-10-13 · Original allemand