DEENESPTFRRUARHIKOZHNL

clase ara::diag::DiagOfferException

[SWS_DM_00985] Upstream: RS_AP_00119

class DiagOfferException :           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 la señalización de errores mediante excepciones con un código de error al proporcionar servicios de diagnóstico.
GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 3b24259852fb Procedencia Preguntas abiertas (3)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

Sirve para la señalización de errores mediante excepciones con un código de error al proporcionar servicios de diagnóstico.

La clase ara::diag::DiagOfferException sirve como un tipo de excepción de C++ específico lanzado por clases de diagnóstico de la AUTOSAR Adaptive Platform para señalizar errores ([SWS_DM_00985]). Deriva de ara::core::Exception y se instancia de forma segura para subprocesos mediante un constructor noexcept especificando un ara::core::ErrorCode ([SWS_DM_00986]). Es de suponer que la excepción se produzca principalmente cuando falle el ofrecimiento de servicios de diagnóstico, y debe ser capturada por la aplicación llamadora para evitar una terminación incontrolada del proceso. Pregunta (abierta)

Contexto

La clase ara::diag::DiagOfferException es un tipo de excepción central del módulo de diagnóstico dentro de la AUTOSAR Adaptive Platform ([SWS_DM_00985], SWS Diagnostics §8.11.6 «Class: DiagOfferException»). Conforme a su especificación, se trata de una excepción lanzada por clases de diagnóstico (\"Exception type thrown by Diag classes\"). La clase deriva públicamente de la clase base ara::core::Exception y debe incluirse en las aplicaciones a través de la cabecera ara/diag/diag_error_domain.h ([SWS_DM_00986]).

Entre los interlocutores primarios de interacción se encuentran las clases funcionales de la gestión de diagnóstico, la arquitectura de errores subyacente de AUTOSAR Adaptive (representada por ara::core::ErrorCode) y el software de aplicación que ofrece servicios de diagnóstico. El nombre de la clase sugiere que esta excepción se utiliza presumiblemente cuando falla el ofrecimiento o registro de servicios de diagnóstico por parte de las correspondientes clases Diag (interpretación). Pregunta Q-47046201c9fd38c3 (abierta)

Ciclo de vida

La instanciación de ara::diag::DiagOfferException se realiza a través de su único constructor especificado explicit DiagOfferException(ara::core::ErrorCode err) noexcept ([SWS_DM_00986], SWS Diagnostics §8.11.6.1.1.1 «DiagOfferException»). Al hacerlo, la excepción se vincula directamente a un código de error concreto. Dado que el constructor está declarado como noexcept, se garantiza que durante la propia creación del objeto de excepción no se produzcan más errores ni excepciones recursivas ([SWS_DM_00986]).

En cuanto al ciclo de vida, la clase está sujeta a los mecanismos habituales del tratamiento de excepciones de C++: se crea en la memoria de excepciones del entorno de ejecución, se transporta a través de la pila de llamadas y se libera automáticamente tras la ejecución del bloque catch que la trata. Conforme a la especificación, la construcción es segura para subprocesos (thread-safe) y segura frente a excepciones (exception-safe) ([SWS_DM_00986]). Tras su creación, el objeto de excepción no experimenta cambios de estado internos complejos; probablemente actúa como una envoltura de transporte inmutable para el código de error transmitido (interpretación). Pregunta Q-09c6e0ad610717e9 (abierta)

Ruta de uso

El flujo típico al utilizar ara::diag::DiagOfferException se divide en las siguientes fases:

  • Una aplicación llama a un método de una clase de diagnóstico para proporcionar un servicio o puerto de diagnóstico (operación Offer).
  • Durante la inicialización o el registro, la clase de diagnóstico detecta una condición de error e instancia un ara::core::ErrorCode adecuado.
  • La clase de diagnóstico construye una instancia de ara::diag::DiagOfferException pasando este código de error ([SWS_DM_00986]) y lanza esta excepción.
  • El software de aplicación llamador captura la excepción en el marco de un bloque try-catch.
  • El llamador extrae el código de error de la excepción e inicia estrategias adecuadas de contingencia o reintento.
Tratamiento de errores en caso de fallo al ofrecer mediante DiagOfferExceptionAplicaciónDiag-KlasseDiagOfferExceptionDienst anbieten (Offer)Fehler festgestellt: ErrorCode erzeugenDiagOfferException(err)throw DiagOfferExceptioncatch (const DiagOfferException& e)Evaluar y tratar ErrorCode

Diagrama de secuencia: secuencia típica en la señalización y tratamiento de un error mediante DiagOfferException. Fuentes: [SWS_DM_00985], [SWS_DM_00986].

Escenarios de error

ara::diag::DiagOfferException sirve en sí misma como mecanismo de señalización para situaciones de error. Como condición previa para la instanciación, la instancia llamadora debe disponer de un ara::core::ErrorCode válido ([SWS_DM_00986]). Dado que el constructor está definido como noexcept, la instanciación no da lugar bajo ninguna circunstancia a excepciones secundarias ([SWS_DM_00986]).

Si el software de aplicación no captura una DiagOfferException lanzada, esto conduce de forma predeterminada a la llamada de std::terminate y, por ende, a la caída incontrolada del proceso. Debido a la herencia de ara::core::Exception, es de suponer que esté previsto que, además de la captura específica de ara::diag::DiagOfferException, también pueda actuar un manejador genérico para ara::core::Exception (interpretación), a fin de garantizar una sólida tolerancia a fallos a nivel de proceso. Pregunta Q-d0cf602a077c4dae (abierta)

Esta guía se basa en la especificación AUTOSAR Adaptive R25-11 (módulo diag) y fue generada automáticamente para autodocs.

Diagrama de clases UML

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

G nara__diag__DiagOfferException442 DiagOfferException + DiagOfferException() nara__core__Exception792 Exception nara__diag__DiagOfferException442->nara__core__Exception792 nstd__exception10 std::exception nara__core__Exception792->nstd__exception10

Constructores y destructor

Construct a new DiagException from an ErrorCode.

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

Documentación de los métodos

función DiagOfferException [SWS_DM_00986] Upstream: RS_AP_00119

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

Construct a new DiagException from an ErrorCode.

Header-Datei#include "ara/diag/diag_error_domain.h"
Scopeclass ara::diag::DiagOfferException
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_00986
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00986@rel:R25-11#94919e48
Content hash
94919e48
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00986
Status: valid/unmigrated Version: rel:R25-11#5fd23a99 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_00986@rel:R25-11#5fd23a99
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#346e60702026-09-30
  • R23-11rel:R23-11#f79e89952026-10-14
  • R24-11rel:R24-11#5fd23a992026-10-14
  • R25-11rel:R25-11#5fd23a992026-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