DEENESPTFRRUARHIKOZHNL

clase ara::diag::DiagException

[SWS_DM_00515] Upstream: RS_AP_00119

class DiagException :            public ara::core::Exception {...};

Exception type thrown by Diag classes.

Header-Datei#include "ara/diag/diag_error_domain.h"
Forwarding-Header#include "ara/diag/diag_fwd.h"
Scopenamespace ara::diag
Basisklasse(n)ara::core::Exception

Guía del usuarioGENERADO POR IA

Sirve para encapsular y reenviar códigos de error de diagnóstico como excepción de C++ a los llamadores de funciones de nivel superior.
GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 61473cb95c98 Procedencia Preguntas abiertas (2)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

Sirve para encapsular y reenviar códigos de error de diagnóstico como excepción de C++ a los llamadores de funciones de nivel superior.

La clase ara::diag::DiagException actúa como un tipo de excepción especializado para señalizar errores procedentes de clases de diagnóstico de la AUTOSAR Adaptive Platform ([SWS_DM_00515]). Encapsula un ara::core::ErrorCode y se lanza en caso de errores internos para reenviar estados de error de forma estructurada a las aplicaciones llamadoras ([SWS_DM_00516]). Su constructor es seguro para subprocesos y está declarado como seguro frente a excepciones mediante noexcept ([SWS_DM_00516]).

Contexto

La clase ara::diag::DiagException constituye el tipo de excepción central para el clúster funcional de la AUTOSAR Adaptive Platform Diagnostics (SWS Diagnostics §8.11.4 «Class: DiagException», [SWS_DM_00515]). Se deriva directamente de la clase base ara::core::Exception y es responsable de notificar al llamador, en caso de excepción, los estados de error que ocurran dentro de las clases de diagnóstico. Los interlocutores primarios de interacción son las clases de diagnóstico proveedoras dentro de ara::diag, que señalizan situaciones excepcionales, así como el software de aplicación usuario, que solicita operaciones de diagnóstico y captura posibles excepciones. Debido a su declaración en el archivo de cabecera ara/diag/diag_error_domain.h, la clase de excepción está directamente vinculada con los dominios de error específicos de diagnóstico ([SWS_DM_00516]).

Ciclo de vida

La instanciación de ara::diag::DiagException se efectúa pasando un código de error de tipo ara::core::ErrorCode al constructor ([SWS_DM_00516]). Este constructor está definido como explicit, lo que impide conversiones de tipo implícitas a partir de códigos de error. Además, la creación está declarada como noexcept, lo que garantiza la seguridad frente a excepciones («exception safe») durante la creación del objeto y evita que se lance otra excepción mientras se desencadena un estado de excepción ([SWS_DM_00516]). Para la llamada del constructor se garantiza la seguridad para subprocesos («thread-safe») ([SWS_DM_00516]). En cuanto al ciclo de vida posterior, el objeto de excepción existe durante el tiempo que dura el proceso de stack unwinding hasta la finalización del bloque catch asociado (interpretación: la propiedad y la destrucción del objeto de excepción siguen los mecanismos estandarizados del entorno de ejecución de C++). Pregunta Q-ae485b4ea411b187 (abierta)

Ruta de uso

La ruta de uso regular de ara::diag::DiagException abarca desde la detección de una situación de error en el subsistema de diagnóstico hasta la evaluación por parte del nivel de aplicación. La siguiente secuencia ilustra la interacción de los componentes participantes:

Flujo al lanzar y tratar una DiagExceptionAplicaciónara::diag-KlasseDiagExceptionDiagnosefunktion aufrufenUse Case: Caso de error en el clúster de diagnósticoDiagException(err) instanziierenthrow DiagExceptionTratar excepción en el bloque catch

Diagrama de secuencia: secuencia típica al producirse, lanzarse y tratarse una DiagException. Fuentes: [SWS_DM_00515], [SWS_DM_00516].

La aplicación inicia primero una operación en una clase funcional del módulo ara::diag. Si durante el procesamiento se produce una condición que excluye una ruta de retorno regular, la clase de diagnóstico crea una instancia de ara::diag::DiagException especificando el ara::core::ErrorCode correspondiente ([SWS_DM_00516]). Esta excepción se lanza a través del mecanismo habitual de excepciones de C++. La instancia de la aplicación llamadora captura el objeto en un manejador de excepciones tipificado para iniciar las medidas adecuadas de recuperación o de registro.

Escenarios de error

Como clase de señalización de errores, ara::diag::DiagException atiende prioritariamente la transmisión de estados de error de diagnóstico. La condición previa para la construcción exitosa es el suministro de un parámetro err inicializado de tipo ara::core::ErrorCode ([SWS_DM_00516]). La seguridad frente a excepciones del constructor garantiza que, incluso en situaciones críticas de recursos, no se desencadenen excepciones secundarias en la ruta de construcción ([SWS_DM_00516]). Tras una instanciación exitosa, el objeto encapsula por completo el código de error suministrado (interpretación: es de suponer que el código de error de diagnóstico concreto se inspeccione mediante los mecanismos base heredados de ara::core::Exception por parte de la lógica de aplicación capturadora). Pregunta Q-d20a61b72951321b (abierta)

Esta guía fue seleccionada y editada por una IA sobre la base de la especificación AUTOSAR AP R25-11.

Diagrama de clases UML

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

G nara__diag__DiagException942 DiagException + DiagException() nara__core__Exception792 Exception nara__diag__DiagException942->nara__core__Exception792 nstd__exception10 std::exception nara__core__Exception792->nstd__exception10

Constructores y destructor

DiagException función

Construct a new DiagException from an ErrorCode.

explicit DiagException (ara::core::ErrorCode err) noexcept;

Documentación de los métodos

función DiagException [SWS_DM_00516] Upstream: RS_AP_00119

explicit DiagException (ara::core::ErrorCode err) noexcept;

Construct a new DiagException from an ErrorCode.

Header-Datei#include "ara/diag/diag_error_domain.h"
Scopeclass ara::diag::DiagException
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_DM_00516
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00516@rel:R25-11#db741e21
Content hash
db741e21
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00516
Status: valid/unmigrated Version: rel:R25-11#6bef63b1 Versionshistorie & Revisions (1 transition, 7 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_DM_00516@rel:R25-11#6bef63b1
Point-in-Time History:
Recorded Revisions (7):
  • R25-11rel:R25-11#027392ad2026-09-30
  • R20-11rel:R20-11#f80be4a32026-10-14
  • R21-11rel:R21-11#e1dfd6d02026-10-14
  • R22-11rel:R22-11#c06b421b2026-10-14
  • R23-11rel:R23-11#d17f9fbb2026-10-14
  • R24-11rel:R24-11#6bef63b12026-10-14
  • R25-11rel:R25-11#6bef63b12026-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