DEENESPTFRRUARHIKOZHNL

clase ara::diag::DiagReportingException

[SWS_DM_00987] Upstream: RS_AP_00119

class DiagReportingException :              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

Señaliza errores en operaciones de diagnóstico de forma síncrona como excepción con código de error al llamador.
GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: a149cf644e7f Procedencia Preguntas abiertas (2)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

Señaliza errores en operaciones de diagnóstico de forma síncrona como excepción con código de error al llamador.

La clase de excepción ara::diag::DiagReportingException sirve para la señalización síncrona de estados de error que ocurren durante operaciones dentro de clases de diagnóstico de la Adaptive Platform (AUTOSAR_AP_SWS_Diagnostics §8.11.8 «Class: DiagReportingException»). Se instancia explícitamente con un ara::core::ErrorCode específico y lo transporta a la aplicación llamadora para el análisis de la causa del error [SWS_DM_00988]. Como condición de contorno central, su constructor está especificado como noexcept, exception safe y thread-safe, lo que garantiza una creación libre de errores incluso en contextos de ejecución concurrentes. Deben evitarse las instancias no tratadas, ya que conllevan la terminación inmediata del programa.

Contexto

La clase ara::diag::DiagReportingException constituye la clase de excepción central para procesos de notificación e informe dentro del clúster funcional Diagnostics (AUTOSAR_AP_SWS_Diagnostics §8.11.8 «Class: DiagReportingException»). Está definida como una especialización pública de ara::core::Exception y representa estados de error específicos que ocurren durante la interacción con clases de diagnóstico [SWS_DM_00987]. En una aplicación AUTOSAR Adaptive, la excepción actúa como nexo de unión entre los servicios de diagnóstico internos y el software de aplicación llamador: si se produce un error durante una notificación de diagnóstico, DiagReportingException encapsula este estado y lo transporta de forma síncrona a través de la pila de llamadas hacia el llamador. Entre los interlocutores primarios de interacción se encuentran las clases de API relacionadas con el diagnóstico del módulo diag, que instancian y desencadenan la excepción en caso de error, así como las rutinas de tratamiento de errores de nivel superior de la aplicación, que capturan y procesan el error de diagnóstico.

Ciclo de vida

La instanciación de ara::diag::DiagReportingException se realiza explícitamente mediante el paso de un código de error de tipo ara::core::ErrorCode al constructor [SWS_DM_00988]. La declaración del constructor como explicit impide conversiones implícitas de códigos de error a objetos de excepción y asegura que las instancias de excepción se creen siempre de manera deliberada [SWS_DM_00988].

Dado que el constructor cuenta con la especificación noexcept, se garantiza que durante la propia creación del objeto no puedan producirse más excepciones [SWS_DM_00988]. Esto es esencial para las rutas de error con el fin de evitar una cascada de excepciones durante el tratamiento de errores. Además, el proceso de construcción está clasificado explícitamente como seguro frente a excepciones (exception safe) y seguro para subprocesos (thread-safe) [SWS_DM_00988]. De este modo, varios subprocesos pueden crear objetos de excepción independientes en paralelo y sin bloqueos mutuos.

El ciclo de vida de la excepción está ligado al stack unwinding de C++: tras su creación en la pila de llamadas, el objeto se propaga mediante el mecanismo throw al bloque catch correspondiente. Al salir del manejador de excepciones, finaliza la vida útil del objeto y los recursos ocupados se liberan automáticamente.

Ruta de uso

La ruta de uso regular comienza tan pronto como falla una notificación u operación de diagnóstico dentro de la plataforma Adaptive. En la secuencia típica, la clase de diagnóstico ejecutora detecta una condición no permitida y crea el ara::core::ErrorCode adecuado. En lugar de transmitir el error únicamente como valor de retorno, en la ruta síncrona de excepciones se construye y lanza un objeto de tipo ara::diag::DiagReportingException [SWS_DM_00987].

Tratamiento de excepciones con DiagReportingExceptionAplicaciónara::diag KomponenteDiagReportingExceptionDiagnoseoperation aufrufenFehlerzustand erkennenara::core::ErrorCode erzeugenConstrucción con ErrorCodeLanzar excepción (throw)catch (const DiagReportingException&)Fehlercode auswerten

Diagrama de secuencia: secuencia típica de creación de excepciones y tratamiento de errores con DiagReportingException. Fuentes: [SWS_DM_00987], [SWS_DM_00988], AUTOSAR_AP_SWS_Diagnostics §8.11.8 «Class: DiagReportingException».

En el lado receptor, la lógica de aplicación captura la excepción. Esto se realiza preferentemente por referencia a objetos constantes (const ara::diag::DiagReportingException& o de forma polimórfica mediante const ara::core::Exception&). A continuación, el manejador extrae el ara::core::ErrorCode incrustado para determinar la causa exacta del error e iniciar medidas de recuperación adecuadas a la situación.

Escenarios de error

Los escenarios de error relacionados con ara::diag::DiagReportingException atañen principalmente a la interpretación de los datos de error transmitidos y a la ausencia de un tratamiento de excepciones adecuado.

El constructor requiere obligatoriamente un ara::core::ErrorCode válido [SWS_DM_00988]. Mediante la inclusión del archivo de cabecera ara/diag/diag_error_domain.h [SWS_DM_00988], es de suponer que el código de error transmitido provenga principalmente del dominio de error específico de diagnóstico. Pregunta Q-cb8a197542857807 (abierta) Un escenario principal de error en la arquitectura de la aplicación radica en la captura incompleta de la excepción: si una DiagReportingException lanzada a lo largo de la pila de llamadas no es tratada por un bloque catch adecuado, esto conduce inevitablemente a la llamada de std::terminate y, con ello, a la caída del proceso de plataforma en cuestión. Dado que el propio constructor está declarado como noexcept [SWS_DM_00988], la instanciación de la excepción no puede fallar por falta de recursos internos. Por consiguiente, los desarrolladores deben asegurarse de que los componentes llamadores estén preparados para la aparición de DiagReportingException, especialmente cuando se utilicen API que señalicen errores a través de excepciones en lugar de ara::core::Result.

Esta guía fue generada por una IA sobre la base de la especificación AUTOSAR Adaptive R25-11.

Diagrama de clases UML

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

G nara__diag__DiagReportingException911 DiagReportingException + DiagReportingException() nara__core__Exception792 Exception nara__diag__DiagReportingException911->nara__core__Exception792 nstd__exception10 std::exception nara__core__Exception792->nstd__exception10

Constructores y destructor

Construct a new DiagException from an ErrorCode.

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

Documentación de los métodos

función DiagReportingException [SWS_DM_00988] Upstream: RS_AP_00119

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

Construct a new DiagException from an ErrorCode.

Header-Datei#include "ara/diag/diag_error_domain.h"
Scopeclass ara::diag::DiagReportingException
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_00988
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00988@rel:R25-11#88d31f69
Content hash
88d31f69
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00988
Status: valid/unmigrated Version: rel:R25-11#9465de9a Versionshistorie & Revisions (1 transition, 4 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_00988@rel:R25-11#9465de9a
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#431097f22026-09-30
  • R23-11rel:R23-11#85d295e12026-10-14
  • R24-11rel:R24-11#9465de9a2026-10-14
  • R25-11rel:R25-11#9465de9a2026-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