DEENESPTFRRUARHIKOZHNL

clase ara::diag::DiagSovdException

[SWS_DM_01807] Upstream: RS_AP_00119

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

Exception type for SOVD thrown by Diag classes.

Header-Datei#include "ara/diag/diag_sovd_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 de diagnóstico específicos de SOVD como excepción segura frente a excepciones con código de error asociado al llamador.
GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 58783cae6416 Procedencia Preguntas abiertas (2)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

Señaliza errores de diagnóstico específicos de SOVD como excepción segura frente a excepciones con código de error asociado al llamador.

La clase ara::diag::DiagSovdException sirve como tipo de excepción especializado para Service-Oriented Vehicle Diagnostics (SOVD) y es desencadenada por clases de diagnóstico en el módulo diag para la señalización de errores [SWS_DM_01807]. Deriva de ara::core::Exception y, en situaciones de error, se instancia explícitamente con un ara::core::ErrorCode para transmitir información de error al contexto llamador mediante el stack unwinding de C++ [SWS_DM_01808]. Como condición de contorno central, el constructor está especificado como noexcept y garantiza así una seguridad completa frente a excepciones, así como seguridad para subprocesos durante la creación del objeto.

Contexto

La clase ara::diag::DiagSovdException representa el tipo de excepción central para Service-Oriented Vehicle Diagnostics (SOVD) en el módulo de diagnóstico de la AUTOSAR Adaptive Platform ([SWS_DM_01807], SWS Diagnostics §8.51.4 «Class: DiagSovdException»). Es desencadenada por clases de diagnóstico internas para indicar estados de error específicos durante el procesamiento de solicitudes SOVD ([SWS_DM_01807], SWS Diagnostics, p. 69).

La clase deriva públicamente de la excepción base general ara::core::Exception ([SWS_DM_01807], SWS Diagnostics §8.51.4). Entre sus interlocutores directos de interacción se encuentran las clases funcionales de diagnóstico del módulo diag, que analizan solicitudes de diagnóstico y desencadenan excepciones en caso de errores, así como el software de aplicación llamador, que debe capturar y procesar dichas excepciones. La clase está declarada en la cabecera ara/diag/diag_sovd_error_domain.h para satisfacer requisitos arquitectónicos de nivel superior ([SWS_DM_01808], SWS Diagnostics §8.51.4.1.1.1 «DiagSovdException»).

Ciclo de vida

La instanciación de ara::diag::DiagSovdException se realiza a través de un constructor que acepta obligatoriamente un ara::core::ErrorCode como parámetro err ([SWS_DM_01808], SWS Diagnostics §8.51.4.1.1.1). Este constructor está declarado como explicit para evitar conversiones implícitas de códigos de error a objetos de excepción, y está marcado como noexcept ([SWS_DM_01808]).

En cuanto a robustez y concurrencia, la especificación garantiza que la construcción es completamente segura frente a excepciones (exception safe) y para subprocesos ([SWS_DM_01808]). Esto garantiza que la propia generación de errores no provoque excepciones adicionales ni inconsistencias, incluso en escenarios de diagnóstico concurrentes. El ciclo de vida de la excepción sigue el desenrollado de pila estándar de C++: el objeto se crea en caso de error dentro de una función de diagnóstico, se propaga a través de los niveles de llamada y se destruye de manera determinista al salir del bloque catch correspondiente.

Ruta de uso

El flujo típico al utilizar ara::diag::DiagSovdException se divide en los siguientes pasos:

  • Una aplicación inicia una operación de diagnóstico relativa a SOVD en una interfaz del módulo diag.
  • El componente de diagnóstico responsable detecta una condición de error y genera un ara::core::ErrorCode adecuado a partir del dominio de errores de SOVD ([SWS_DM_01808]).
  • El componente construye la excepción mediante explicit DiagSovdException(err) y la lanza ([SWS_DM_01808], [SWS_DM_01807]).
  • La aplicación captura la excepción mediante catch (const ara::diag::DiagSovdException& ex) o de forma polimórfica mediante const ara::core::Exception& para reaccionar al estado de error.
Flujo del tratamiento de excepciones con DiagSovdExceptionAplicaciónDiagnoseklasseDiagSovdExceptionRealizar llamada de diagnóstico SOVDSOVD-Fehlerbedingung feststellenara::core::ErrorCode erzeugenDiagSovdException(err) konstruierenthrow DiagSovdExceptioncatch (const DiagSovdException& ex)Analizar y tratar el error

Diagrama de secuencia: secuencia de llamada y tratamiento al desencadenarse una DiagSovdException. Fuentes: [SWS_DM_01807], [SWS_DM_01808].

Escenarios de error

Como transportador de errores, la propia clase sirve para el tratamiento de estados excepcionales ([SWS_DM_01807]). La provisión de un ara::core::ErrorCode inicializado actúa como condición previa formal para su creación ([SWS_DM_01808]). Dado que el constructor está declarado como noexcept, no se producen excepciones durante la propia creación del objeto ([SWS_DM_01808]).

Interpretación: probablemente la instancia encapsula el código de error transferido de forma permanente, de modo que los gestores de errores posteriores puedan inspeccionarlo a través de funciones heredadas de ara::core::Exception. Pregunta Q-332b95b96849e379 (abierta) En configuraciones de sistema con excepciones de C++ desactivadas, es de suponer que el componente de diagnóstico prefiera mecanismos de error alternativos, mientras que DiagSovdException representa la ruta designada para el tratamiento de excepciones.

Esta guía se basa en la especificación AUTOSAR Adaptive Platform R25-11 y resume los requisitos para el tratamiento de excepciones de SOVD.

Diagrama de clases UML

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

G nara__diag__DiagSovdException335 DiagSovdException + DiagSovdException() nara__core__Exception792 Exception nara__diag__DiagSovdException335->nara__core__Exception792 nstd__exception10 std::exception nara__core__Exception792->nstd__exception10

Constructores y destructor

Construct a new DiagSovdException from an ErrorCode.

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

Documentación de los métodos

función DiagSovdException [SWS_DM_01808] Upstream: RS_AP_00119

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

Construct a new DiagSovdException from an ErrorCode.

Header-Datei#include "ara/diag/diag_sovd_error_domain.h"
Scopeclass ara::diag::DiagSovdException
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_01808
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01808@rel:R25-11#6301e253
Content hash
6301e253
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01808
Status: valid/unmigrated Version: rel:R25-11#e8244057 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_01808@rel:R25-11#e8244057
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#76e1ec2d2026-09-30
  • R23-11rel:R23-11#62167f502026-10-14
  • R24-11rel:R24-11#e82440572026-10-14
  • R25-11rel:R25-11#e82440572026-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