DEENESPTFRRUARHIKOZHNL

clase ara::diag::DiagUdsNrcException

[SWS_DM_00527] Upstream: RS_AP_00119

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

Exception type thrown by Diag classes.

Header-Datei#include "ara/diag/diag_uds_nrc_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 como excepción segura para subprocesos para la señalización y propagación de errores UDS-NRC en clases de diagnóstico.
GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 6ef167bbc303 Procedencia Preguntas abiertas (2)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

Sirve como excepción segura para subprocesos para la señalización y propagación de errores UDS-NRC en clases de diagnóstico.

La clase ara::diag::DiagUdsNrcException sirve como excepción estandarizada para la señalización de errores UDS-NRC por parte de clases de diagnóstico de la AUTOSAR Adaptive Platform (AUTOSAR_AP_SWS_Diagnostics §8.12.4 «Class: DiagUdsNrcException»). Al producirse una condición de error correspondiente, se instancia con un ara::core::ErrorCode, se lanza y la aplicación invocadora la captura para el tratamiento de errores. Como restricción esencial, según [SWS_DM_00528], su constructor garantiza una seguridad total frente a excepciones (noexcept), así como seguridad para subprocesos, lo que asegura una creación de objetos fiable incluso en contextos concurrentes.

Contexto

En la AUTOSAR Adaptive Platform, la clase ara::diag::DiagUdsNrcException constituye el tipo de excepción central para las clases de diagnóstico del módulo diag (AUTOSAR_AP_SWS_Diagnostics §8.12.4 «Class: DiagUdsNrcException»). Conforme a la especificación [SWS_DM_00527], define una interfaz de excepción estandarizada en C++ que hereda directamente de la clase base de excepción ara::core::Exception. Su responsabilidad primaria consiste en transportar condiciones de error del contexto de diagnóstico, en particular códigos de respuesta negativa (Negative Response Codes, NRC) del protocolo UDS, como excepciones tipadas a través de la interfaz de programación. La clase interactúa estrechamente con ara::core::ErrorCode, que encapsula el código de error concreto, así como con las capas de aplicación invocadoras que realizan peticiones de diagnóstico y deben capturar eventuales errores ([SWS_DM_00528]). Mediante la declaración en la cabecera ara/diag/diag_uds_nrc_error_domain.h, la excepción está vinculada directamente al dominio de errores UDS-NRC correspondiente ([SWS_DM_00528]).
diag_uds_nrc_context diag_classes Clases de ara::diag nrc_exception ara::diag::DiagUdsNrcException diag_classes->nrc_exception genera y lanza app Anwendungssoftware nrc_exception->app transmite el error a error_code ara::core::ErrorCode error_code->nrc_exception initialisiert

Diagrama de contexto: integración de DiagUdsNrcException en la interacción entre código de error, clases de diagnóstico y software de aplicación. Fuentes: [SWS_DM_00527], [SWS_DM_00528], AUTOSAR_AP_SWS_Diagnostics §8.12.4 «Class: DiagUdsNrcException»

Ciclo de vida

El ciclo de vida de una instancia de ara::diag::DiagUdsNrcException comienza con su instanciación explícita por parte de una clase de diagnóstico o de una rutina interna de tratamiento de errores. Según [SWS_DM_00528], la clase dispone de un constructor explicit DiagUdsNrcException(ara::core::ErrorCode err) noexcept; que recibe el código de error subyacente como parámetro err. Este constructor está definido expresamente como seguro frente a excepciones (exception safe) y no lanzador (noexcept) ([SWS_DM_00528]), lo que garantiza que no puedan surgir excepciones secundarias en la ruta de error durante la creación del objeto. Además, según [SWS_DM_00528], la creación está clasificada como segura para subprocesos (thread-safe). Tras la creación, la instancia de la excepción se lanza típicamente por valor a través del sistema de ejecución de C++. La propiedad del objeto permanece en el entorno de ejecución durante el desenrollado de pila, hasta que la excepción se vincula y evalúa en un bloque catch correspondiente. Al salir del bloque de tratamiento de excepciones, el ciclo de vida del objeto finaliza mediante su destrucción regular.

Ruta de uso

La ruta de uso típica comprende la detección de un error UDS-NRC, la creación de la excepción y su posterior evaluación por parte de la aplicación:
  1. Un componente de aplicación invoca una función de diagnóstico o una interfaz de servicio de una clase ara::diag.
  2. Durante el procesamiento, la clase de diagnóstico determina que la petición no puede atenderse con éxito y que se presenta un UDS-NRC, tras lo cual genera un ara::core::ErrorCode correspondiente.
  3. Al transferir este código de error, la excepción ara::diag::DiagUdsNrcException se instancia a través de su constructor ([SWS_DM_00528]).
  4. La clase de diagnóstico lanza el objeto de excepción fuera del contexto de ejecución (AUTOSAR_AP_SWS_Diagnostics §8.12.4 «Class: DiagUdsNrcException»).
  5. La aplicación invocadora captura la excepción, bien con el tipo exacto como ara::diag::DiagUdsNrcException ([SWS_DM_00527]) o bien de forma polimórfica a través de la clase base ara::core::Exception, y accede a la información de error.
Flujo del tratamiento de excepciones con DiagUdsNrcExceptionAplicaciónDiag-KlasseDiagUdsNrcExceptionEjecutar función de diagnósticoUDS-NRC-Bedingung erkannt, ErrorCode erzeugtDiagUdsNrcException(err)throw DiagUdsNrcExceptioncatch y evaluar error

Diagrama de secuencia: secuencia típica de creación, lanzamiento y captura de DiagUdsNrcException. Fuentes: [SWS_DM_00527], [SWS_DM_00528], AUTOSAR_AP_SWS_Diagnostics §8.12.4 «Class: DiagUdsNrcException»

Escenarios de error

Dado que ara::diag::DiagUdsNrcException es en sí mismo un vehículo para la señalización de errores, los escenarios de fallo se refieren principalmente a la robustez y a la concurrencia durante la generación de excepciones:
  • Creación robusta de objetos: mediante la especificación como noexcept y exception safe ([SWS_DM_00528]), queda excluido que se lance una excepción secundaria durante la construcción. Esto evita terminaciones anómalas fatales en tiempo de ejecución, como std::terminate, en rutas críticas de tratamiento de errores.
  • Validez del código de error: como condición previa para la instanciación, debe estar disponible un ara::core::ErrorCode válido ([SWS_DM_00528]). Este procede típicamente del dominio de errores definido por ara/diag/diag_uds_nrc_error_domain.h.
  • Procesamiento de diagnóstico en paralelo: dado que el constructor está especificado como thread-safe ([SWS_DM_00528]), varios subprocesos pueden generar excepciones de diagnóstico de forma concurrente sin que se produzcan condiciones de carrera durante la inicialización del objeto de excepción.

Esta guía ha sido generada por un sistema de IA a partir de la especificación AUTOSAR R25-11.

Diagrama de clases UML

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

G nara__diag__DiagUdsNrcException343 DiagUdsNrcException + DiagUdsNrcException() nara__core__Exception792 Exception nara__diag__DiagUdsNrcException343->nara__core__Exception792 nstd__exception10 std::exception nara__core__Exception792->nstd__exception10

Constructores y destructor

Construct a new DiagException from an ErrorCode.

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

Documentación de los métodos

función DiagUdsNrcException [SWS_DM_00528] Upstream: RS_AP_00119

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

Construct a new DiagException from an ErrorCode.

Header-Datei#include "ara/diag/diag_uds_nrc_error_domain.h"
Scopeclass ara::diag::DiagUdsNrcException
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_00528
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00528@rel:R25-11#f419a39f
Content hash
f419a39f
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00528
Status: valid/unmigrated Version: rel:R25-11#55ae2ae1 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_00528@rel:R25-11#55ae2ae1
Point-in-Time History:
Recorded Revisions (7):
  • R25-11rel:R25-11#d0877d832026-09-30
  • R20-11rel:R20-11#cfe41a2e2026-10-14
  • R21-11rel:R21-11#cfe41a2e2026-10-14
  • R22-11rel:R22-11#b5842e552026-10-14
  • R23-11rel:R23-11#ccbb9a702026-10-14
  • R24-11rel:R24-11#55ae2ae12026-10-14
  • R25-11rel:R25-11#55ae2ae12026-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