DEENESPTFRRUARHIKOZHNL

classe ara::exec::ExecException

[SWS_EM_02282] Upstream: RS_AP_00130, RS_AP_00122, RS_AP_00127, RS_AP_00154, RS_AP_00150, RS_AP_00140

class ExecException final :          public ara::core::Exception {...};

Defines a class for exceptions to be thrown by the Execution Management.

Header-Datei#include "ara/exec/exec_error_domain.h"
Forwarding-Header#include "ara/exec/exec_fwd.h"
Scopenamespace ara::exec
Basisklasse(n)ara::core::Exception

Guide utilisateurGÉNÉRÉ PAR IA

Encapsule les codes d'erreur de l'Execution Management sous la forme d'une exception C++ pour le traitement synchrone des erreurs.
GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : e102ca6cc8ed Provenance Questions ouvertes (3)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

Encapsule les codes d'erreur de l'Execution Management sous la forme d'une exception C++ pour le traitement synchrone des erreurs.

La classe ara::exec::ExecException sert de classe d'exception finale de l'Execution Management pour encapsuler et signaler les erreurs spécifiques au module via le mécanisme d'exception C++. En cas d'erreur, des instances sont créées et levées en indiquant un ara::core::ErrorCode via le constructeur sûr au niveau des threads (thread-safe), après quoi les entités appelantes les interceptent et les analysent [SWS_EM_02283]. Comme condition aux limites fondamentale, la construction est spécifiée comme noexcept, garantissant que la création d'objet reste exempte d'exceptions [SWS_EM_02283]. Les exceptions non traitées doivent être évitées, car elles entraînent l'arrêt du système.

Contexte

La classe ara::exec::ExecException constitue la classe d'exception centrale du module Execution Management (exec) au sein de l'AUTOSAR Adaptive Platform. Conformément à sa spécification, elle sert d'encapsulation pour les exceptions déclenchées par l'Execution Management. La déclaration de classe la définit en tant que final avec dérivation publique de la classe d'exception de base standard ara::core::Exception, ce qui lui permet de s'intégrer de manière transparente dans le concept uniforme d'exception et de traitement des erreurs de l'Adaptive Platform. Grâce à l'identifiant final, toute spécialisation ou sous-classification ultérieure est exclue.

La classe d'exception est déclarée dans l'en-tête #include "ara/exec/exec_error_domain.h" [SWS_EM_02283]. La responsabilité fonctionnelle principale de ara::exec::ExecException réside dans le transport d'états d'erreur spécifiques au module par le biais du mécanisme d'exception C++. Interprétation : La levée de cette exception devrait principalement intervenir dans des environnements d'exécution où les états d'erreur de l'Execution Management ne sont pas uniquement propagés via des types d'erreur basés sur les valeurs, mais où une interruption synchrone du flux de contrôle via des exceptions C++ est requise. Question Q-8faec8c282524965 (ouverte)

Cycle de vie

Le cycle de vie d'une instance de ara::exec::ExecException commence par une construction explicite avec transmission d'un code d'erreur. Le constructeur explicit ExecException(ara::core::ErrorCode errorCode) noexcept génère un nouvel objet d'exception qui encapsule le code d'erreur transmis [SWS_EM_02283]. La désignation comme noexcept garantit que la création de l'objet reste sans échec, même dans le contexte d'un traitement d'erreurs déjà existant, et ne déclenche pas d'erreurs consécutives en cascade [SWS_EM_02283].

En ce qui concerne la sécurité d'exécution, la construction est explicitement classée comme sûre face aux exceptions (« exception safe ») et sûre pour les threads (« thread-safe ») [SWS_EM_02283]. Cela permet la création fiable d'instances d'exception à travers différents threads, sans qu'aucun mécanisme de synchronisation supplémentaire ne soit nécessaire. Après son déclenchement via throw, l'objet passe sous la gestion du système d'exécution C++. Interprétation : La destruction de l'objet d'exception s'effectue automatiquement après la sortie du bloc catch de traitement lors du déroulement régulier de la pile (stack unwinding), raison pour laquelle aucune gestion explicite du cycle de vie par l'appelant n'est requise. Question Q-ec22ad5f177555aa (ouverte)

Parcours d'utilisation

Un chemin d'utilisation typique de ara::exec::ExecException comprend l'instanciation en cas d'erreur au sein de l'Execution Management ainsi que l'interception contrôlée dans le contexte applicatif appelant :

  • Identification de l'erreur et instanciation : Si une condition d'exception survient dans l'Execution Management, la cause est représentée dans un ara::core::ErrorCode du domaine d'erreur associé et utilisée pour l'initialisation explicite d'une ara::exec::ExecException [SWS_EM_02283].
  • Signalement : L'instance d'exception initialisée est levée, ce qui interrompt le chemin d'exécution régulier et amorce le déroulement de la pile.
  • Interception : Les composants appelants interceptent l'objet d'exception soit de manière ciblée en tant que const ara::exec::ExecException&, soit de manière plus générale via la classe de base polymorphique const ara::core::Exception&.
  • Évaluation : Interprétation : Étant donné que l'objet a été construit avec un ara::core::ErrorCode [SWS_EM_02283] et hérite de ara::core::Exception, le destinataire devrait extraire le code d'erreur contenu via les interfaces de la classe de base afin d'appliquer des mesures de récupération ou de journalisation spécifiques au module. Question Q-d4671c34f5aab6f9 (ouverte)

Scénarios d'erreur

En tant que classe d'exception spécialisée, ara::exec::ExecException est conçue pour représenter des situations d'erreur existantes sans induire de nouvelles erreurs lors de sa propre utilisation. Pour la création, le constructeur exige la transmission d'un ara::core::ErrorCode [SWS_EM_02283]. Étant donné que le constructeur est déclaré comme noexcept, les erreurs de préconditions susceptibles d'entraver la création de l'objet d'exception lors de l'instanciation sont exclues [SWS_EM_02283].

Un scénario d'erreur majeur au niveau du système réside dans l'interception incomplète des exceptions levées. Si une exception déclenchée par ara::exec::ExecException reste non traitée le long de la hiérarchie d'appels, le traitement d'exécution standard de C++ intervient, ce qui aboutit typiquement à l'appel de std::terminate et donc à l'interruption prématurée du processus. Les composants logiciels en interaction doivent par conséquent s'assurer que les appels aux fonctions potentiellement émettrices d'exceptions de l'Execution Management sont sécurisés par des blocs try-catch adéquats.

Ce guide a été généré par une IA sur la base de la spécification AUTOSAR Adaptive Platform R25-11.

Diagramme de classes UML

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

G nara__exec__ExecException556 ExecException + ExecException() nara__core__Exception792 Exception nara__exec__ExecException556->nara__core__Exception792 nstd__exception10 std::exception nara__core__Exception792->nstd__exception10

Constructeurs et destructeur

ExecException fonction

Constructs a new ExecException object containing an error code.

explicit ExecException (ara::core::ErrorCode errorCode) noexcept;

Documentation des méthodes

fonction ExecException [SWS_EM_02283] Upstream: RS_AP_00120, RS_AP_00121, RS_AP_00130, RS_AP_00159

explicit ExecException (ara::core::ErrorCode errorCode) noexcept;

Constructs a new ExecException object containing an error code.

Header-Datei#include "ara/exec/exec_error_domain.h"
Scopeclass ara::exec::ExecException
Exception-Sicherheitexception safe
Thread-Sicherheitthread-safe

Parameter (in)

ParameterBeschreibung
errorCodeThe error code.

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_EM_02283
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_EM_02283@rel:R25-11#cf033316
Content hash
cf033316
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_ExecutionManagement.pdf#nameddest=SWS_EM_02283
Status: valid/unmigrated Version: rel:R25-11#f57f2491 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_EM_02283@rel:R25-11#f57f2491
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#7afdb8d92026-09-30
  • R19-11rel:R19-11#5683c5ea2026-10-14
  • R20-11rel:R20-11#1a1c4d242026-10-14
  • R21-11rel:R21-11#1a1c4d242026-10-14
  • R22-11rel:R22-11#49bf1b972026-10-14
  • R23-11rel:R23-11#4052ff1d2026-10-14
  • R24-11rel:R24-11#8fa7f4222026-10-14
  • R25-11rel:R25-11#f57f24912026-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