Encapsule et identifie les erreurs de communication générales du middleware pour la gestion d'erreurs standardisée.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 13073fe45989ProvenanceQuestions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
Encapsule et identifie les erreurs de communication générales du middleware pour la gestion d'erreurs standardisée.
La classe ara::com::ComErrorDomain représente le domaine d'erreur de communication pour l'identification des erreurs générales, non spécifiques à une interface, dans l'API ara::com ([SWS_CM_11265]). Elle fournit des descriptions d'erreurs pour des codes d'erreur tels que ComErrc::kCommunicationFailure et permet leur interrogation via Message() ou leur conversion en une exception au moyen de ThrowAsException() ([SWS_CM_11332]). Étant donné que son constructeur par défaut est supprimé, elle agit comme une instance de domaine sans état et thread-safe pour le ara::core::Result porteur d'erreur.
Contexte
La classe ara::com::ComErrorDomain représente le domaine d'erreur de communication standardisé de l'Adaptive Platform pour le cluster fonctionnel Communication Management (SWS CommunicationManagement p. 439). Elle dérive de la classe de base ara::core::ErrorDomain et définit le contexte sémantique pour les erreurs générales qui peuvent survenir lors d'appels de méthode ou de transmissions de données, sans toutefois être spécifiques à un ServiceInterface individuel ([SWS_CM_11265]). Dans l'architecture d'erreurs de ara::com, elle délimite systématiquement les anomalies générales de communication des erreurs de surveillance E2E ainsi que des erreurs de service spécifiques à l'application (SWS CommunicationManagement §7.5.22.6 « Error Related Data Types »).
Parmi ses partenaires d'interaction centraux figurent l'Adaptive Application, les implémentations de service et de proxy du middleware ainsi que les types de données ara::core::ErrorCode et ara::core::Result du système de base (EXP ARAComAPI §4.7 « Error Handling »). Pour la liaison de type sémantique, la classe fournit les alias de type Errc pour l'énumération de codes d'erreur ComErrc ([SWS_CM_11336]) ainsi que Exception pour la classe d'exception associée ComException ([SWS_CM_11337]).
En tant que classe de spécification pour un domaine d'erreur, la création de ara::com::ComErrorDomain est empêchée par la suppression du constructeur par défaut ComErrorDomain() = delete; ([SWS_CM_11330]). Interprétation : la fourniture de l'instance de domaine devrait s'effectuer sous forme de singleton statique via la plateforme, de sorte que les composants applicatifs n'aient pas à instancier ni à gérer dynamiquement le domaine. Question Q-bf957a108c0a5378 (ouverte)
L'instance agit comme un descripteur sans état, sans attributs modifiables. Toutes les méthodes fournies telles que Name() ([SWS_CM_11331]) et Message() ([SWS_CM_11332]) sont déclarées comme const noexcept. Cela garantit une sécurité de thread totale lors des interrogations d'erreurs concurrentes par des threads applicatifs et de middleware parallèles.
Parcours d'utilisation
Le chemin d'utilisation typique comprend la détection, la transmission et l'évaluation d'une erreur via les interfaces de ara::com :
L'application initie une interaction de service, par exemple via l'opérateur d'appel de la classe de méthode operator() ([SWS_CM_00196]).
Si le middleware détecte un cas d'erreur pendant le traitement, tel qu'une anomalie de communication ou une erreur applicative non configurée ([SWS_CM_00048]), l'opération SetError est appelée sur le Promise correspondant (SWS CommunicationManagement p. 300).
Un ara::core::ErrorCode est alors construit, dont le domaine est défini sur ara::com::ComErrorDomain ([SWS_CM_11329]) et dont le code numérique est défini sur une valeur d'énumération spécifique telle que ComErrc::kCommunicationFailure ([SWS_CM_10432]).
Le ara::core::Future ou ara::core::Result renvoyé à l'application transporte le code d'erreur vers l'appelant en état d'erreur (EXP ARAComAPI §4.7 « Error Handling »).
L'application vérifie le Result et utilise les fonctions de domaine Name() ([SWS_CM_11331]) et Message() ([SWS_CM_11332]) pour résoudre les messages d'erreur à des fins de journalisation ou de diagnostic.
Si la logique applicative attend une exception et que les exceptions C++ sont activées, la conversion en une ComException peut être déclenchée au moyen de ThrowAsException() ([SWS_CM_11333]).
Le concept d'erreur de ara::com distingue rigoureusement les erreurs récupérables (Recoverable Errors) des violations de programmation graves (Violations ou Corruptions) (EXP ARAComAPI §4.7 « Error Handling »). Les erreurs récupérables sont traitées via ara::core::Result et ara::core::ErrorCode, les codes d'erreur du domaine ComErrorDomain étant référencés via l'alias d'identifiant Errc ([SWS_CM_11336]).
Si, par exemple, une interruption de transmission se produit lors d'un appel distant, le système signale ComErrc::kCommunicationFailure ([SWS_CM_10432]). En cas d'erreur applicative non configurée, le middleware interrompt l'appel et définit également un code d'erreur correspondant du domaine ([SWS_CM_00048], SWS CommunicationManagement p. 300).
Si un code d'erreur doit être levé sous forme d'exception, ThrowAsException() instancie une exception du type ComException ([SWS_CM_11337]) et la lève ([SWS_CM_11333]). Cette méthode n'est pas sûre vis-à-vis des exceptions (not exception safe) et, selon la spécification, ne participe pas à la résolution de surcharge lorsque les exceptions C++ sont désactivées ([SWS_CM_11333]). Les violations système non récupérables entraînent en revanche directement l'interruption de la plateforme et ne sont pas traitées via ComErrorDomain (EXP ARAComAPI §4.7 « Error Handling »).
Ce guide a été généré par une IA sur la base des spécifications AUTOSAR R25-11.
Creates a new instance of ara::com::ComException 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 : 4c51965f3a93ProvenanceQuestions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
Utilisation
La fonction membre Name() de la classe ara::com::ComErrorDomain sert à récupérer de façon standardisée la désignation textuelle de ce domaine d'erreur ([SWS_CM_11331]). L'appel s'effectue de manière synchrone, ne requiert aucun paramètre d'entrée et renvoie un pointeur constant de type const char * vers la chaîne de caractères associée ([SWS_CM_11331]). La représentation exacte de la chaîne fournie dépend des exigences pour ara::com::ComErrorDomain dans [SWS_CORE_90023]. La déclaration doit être incluse via l'en-tête ara/com/com_error_domain.h ([SWS_CM_11331]).
Gestion des erreurs et concurrence
La méthode est pourvue de la spécification noexcept et classée comme sûre face aux exceptions (exception safe) ([SWS_CM_11331]). En cas d'erreur, aucune exception n'est levée et aucun code d'erreur spécifique n'est renvoyé, puisqu'il s'agit d'une simple opération de lecture. Dans la mesure où seule une constante de chaîne de caractères non modifiable est adressée, la méthode devrait être réentrante et prendre en charge en toute sécurité les appels concurrents provenant de plusieurs threads sans synchronisation externe. Question Q-a9f6ae55558ebb1f (ouverte)
Interaction
La fonction fait partie intégrante des identifiants standardisés de domaines d'erreur au sein de la gestion de la communication (AUTOSAR_AP_SWS_CommunicationManagement §1 « Change History »). Le schéma de nommage et d'interface est mis en œuvre de façon cohérente à travers les domaines apparentés : ainsi, le domaine d'erreur End-to-End ara::com::e2e::ComE2EErrorDomain via [SWS_CM_12507] ainsi que le domaine d'erreur SecOC-FVM apext::com::secoc::ComSecOcFvmErrorDomain via [SWS_CM_12518] définissent également des méthodes Name() similaires pour l'identification.
Ce texte a été généré par une IA sur la base de la spécification AUTOSAR.
Creates a new instance of ara::com::ComException 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 : bc30613084e7ProvenanceQuestions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
Utilisation
La fonction membre ThrowAsException du domaine d'erreur ara::com::ComErrorDomain ([SWS_CM_11333] ; SWS CommunicationManagement §8.12.4.2.2.3 « ThrowAsException ») crée de façon synchrone, à partir d'un code d'erreur transmis errorCode (de type const ara::core::ErrorCode&), une instance de l'exception ara::com::ComException et la lève immédiatement. L'interface ne possède pas de valeur de retour (void) et est déclarée via le fichier d'en-tête ara/com/com_error_domain.h.
Gestion des erreurs et sécurité vis-à-vis des exceptions
La signature est déclarée avec noexcept(false) et spécifiée comme non sûre face aux exceptions (not exception safe) ([SWS_CM_11333]), car le déclenchement de l'exception constitue l'objectif premier de la fonction. Aucun message DET ou DEM spécifique n'est défini pour cet appel.
Contraintes et restrictions
La contrainte centrale suivante s'applique : si les exceptions C++ sont désactivées dans la chaîne d'outils du compilateur, la fonction ne participe pas à la résolution de surcharge conformément à [SWS_CORE_10304] ([SWS_CM_11333]). Interprétation : dans les architectures logicielles où la gestion des exceptions est désactivée, la fonction ne devrait donc pas pouvoir être appelée au moment de la compilation. Question Q-437f825160e6801e (ouverte)
gemini-3.8-flash-low· 2026-10-13 · Original allemand