DEENESPTFRRUARHIKOZHNL

classe 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

Guia do utilizadorGERADO POR IA

Serve para a sinalização de erros por meio de exceções com um código de erro durante a disponibilização de serviços de diagnóstico.
GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 3b24259852fb Procedência Perguntas em aberto (3)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Serve para a sinalização de erros por meio de exceções com um código de erro durante a disponibilização de serviços de diagnóstico.

A classe ara::diag::DiagOfferException serve como um tipo de exceção C++ específico lançado por classes de diagnóstico da AUTOSAR Adaptive Platform para sinalização de erros ([SWS_DM_00985]). Ela deriva de ara::core::Exception e é instanciada de forma thread-safe por meio de um construtor noexcept, especificando um ara::core::ErrorCode ([SWS_DM_00986]). A exceção presumivelmente deve ocorrer primariamente em falhas na disponibilização de serviços de diagnóstico e deve ser interceptada pela aplicação chamadora para evitar o encerramento descontrolado do processo. Pergunta (aberta)

Contexto

A classe ara::diag::DiagOfferException é um tipo central de exceção do módulo de diagnóstico dentro da AUTOSAR Adaptive Platform ([SWS_DM_00985], SWS Diagnostics §8.11.6 «Class: DiagOfferException»). De acordo com sua especificação, trata-se de uma exceção lançada por classes de diagnóstico ("Exception type thrown by Diag classes"). A classe deriva publicamente da classe base ara::core::Exception e deve ser incluída em aplicações por meio do cabeçalho ara/diag/diag_error_domain.h ([SWS_DM_00986]).

Entre os principais parceiros de interação estão as classes funcionais do gerenciamento de diagnóstico, a arquitetura de erros subjacente da AUTOSAR Adaptive (representada por ara::core::ErrorCode) e o software de aplicação que oferece serviços de diagnóstico. O nome da classe sugere que esta exceção presumivelmente é empregada quando o oferecimento ou o registro de serviços de diagnóstico por classes Diag correspondentes falha (interpretação). Pergunta Q-47046201c9fd38c3 (aberta)

Ciclo de vida

A instanciação de ara::diag::DiagOfferException ocorre por meio de seu único construtor especificado explicit DiagOfferException(ara::core::ErrorCode err) noexcept ([SWS_DM_00986], SWS Diagnostics §8.11.6.1.1.1 «DiagOfferException»). Com isso, a exceção é vinculada diretamente a um código de erro concreto. Como o construtor é declarado como noexcept, é garantido que nenhum erro adicional ou exceção recursiva ocorra durante a própria criação do objeto de exceção ([SWS_DM_00986]).

Quanto ao ciclo de vida, a classe está sujeita aos mecanismos usuais de tratamento de exceções de C++: ela é alocada na memória de exceções do ambiente de execução, transportada pela pilha de chamadas e liberada automaticamente após a conclusão do bloco catch de tratamento. De acordo com a especificação, a construção é thread-safe e exception-safe ([SWS_DM_00986]). O objeto de exceção não possui transições internas complexas de estado após sua criação; presume-se que atue como um invólucro de transporte imutável para o código de erro fornecido (interpretação). Pergunta Q-09c6e0ad610717e9 (aberta)

Caminho de utilização

O fluxo típico durante o uso de ara::diag::DiagOfferException divide-se nas seguintes fases:

  • Uma aplicação chama um método de uma classe de diagnóstico para disponibilizar um serviço ou porta de diagnóstico (operação offer).
  • A classe de diagnóstico identifica uma condição de erro durante a inicialização ou registro e instancia um ara::core::ErrorCode adequado.
  • A classe de diagnóstico constrói uma instância de ara::diag::DiagOfferException passando esse código de erro ([SWS_DM_00986]) e lança essa exceção.
  • O software de aplicação chamador intercepta a exceção no âmbito de um bloco try-catch.
  • O chamador extrai o código de erro da exceção e aciona estratégias adequadas de contingência ou repetição.
Tratamento de erro em caso de falha na oferta via DiagOfferExceptionAplicaçãoDiag-KlasseDiagOfferExceptionDienst anbieten (Offer)Fehler festgestellt: ErrorCode erzeugenDiagOfferException(err)throw DiagOfferExceptioncatch (const DiagOfferException& e)Avaliar e tratar ErrorCode

Diagrama de sequência: fluxo típico na sinalização e no tratamento de um erro por meio de DiagOfferException. Fontes: [SWS_DM_00985], [SWS_DM_00986].

Cenários de erro

ara::diag::DiagOfferException serve, por si só, como mecanismo de sinalização para situações de erro. Como pré-requisito para a instanciação, a instância chamadora deve dispor de um ara::core::ErrorCode válido ([SWS_DM_00986]). Como o construtor é definido como noexcept, a instanciação não causa exceções secundárias em hipótese alguma ([SWS_DM_00986]).

Se uma DiagOfferException lançada não for interceptada pelo software de aplicação, isso causará por padrão a chamada de std::terminate e, com isso, a queda descontrolada do processo. Devido à herança de ara::core::Exception, presume-se que esteja previsto que, além da interceptação específica de ara::diag::DiagOfferException, um manipulador genérico para ara::core::Exception também possa atuar (interpretação), visando garantir uma tolerância a falhas robusta no nível do processo. Pergunta Q-d0cf602a077c4dae (aberta)

Este guia baseia-se na especificação AUTOSAR Adaptive R25-11 (módulo diag) e foi gerado automaticamente para o autodocs.

Diagrama de classes 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

Construtores e destrutor

Construct a new DiagException from an ErrorCode.

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

Documentação dos métodos

função 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#f9b82c16
Content hash
f9b82c16
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