DEENESPTFRRUARHIKOZHNL

classe ara::diag::DiagException

[SWS_DM_00515] Upstream: RS_AP_00119

class DiagException :            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 encapsular e encaminhar códigos de erro de diagnóstico como exceção C++ para chamadores de função de nível superior.
GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 61473cb95c98 Procedência Perguntas em aberto (2)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Serve para encapsular e encaminhar códigos de erro de diagnóstico como exceção C++ para chamadores de função de nível superior.

A classe ara::diag::DiagException atua como um tipo de exceção especializado para sinalizar erros provenientes de classes de diagnóstico da AUTOSAR Adaptive Platform ([SWS_DM_00515]). Ela encapsula um ara::core::ErrorCode e é lançada em caso de erros internos a fim de encaminhar estados de erro de forma estruturada para aplicações chamadoras ([SWS_DM_00516]). Seu construtor é thread-safe e declarado como seguro contra exceções por noexcept ([SWS_DM_00516]).

Contexto

A classe ara::diag::DiagException constitui o tipo de exceção central para o cluster funcional Diagnostics da AUTOSAR Adaptive Platform (SWS Diagnostics §8.11.4 «Class: DiagException», [SWS_DM_00515]). Ela deriva diretamente da classe base ara::core::Exception e é responsável por reportar ao chamador, em caso de exceção, estados de erro que ocorrem dentro das classes de diagnóstico. Os parceiros de interação primários são as classes de diagnóstico disponibilizadoras dentro de ara::diag, que sinalizam situações de exceção, bem como o software aplicativo utilizador, que solicita operações de diagnóstico e intercepta potenciais exceções. Por meio da declaração no arquivo de cabeçalho ara/diag/diag_error_domain.h, a classe de exceção está diretamente associada aos domínios de erro específicos de diagnóstico ([SWS_DM_00516]).

Ciclo de vida

A instanciação de ara::diag::DiagException ocorre mediante a passagem de um código de erro do tipo ara::core::ErrorCode para o construtor ([SWS_DM_00516]). Esse construtor é definido como explicit, o que impede conversões implícitas de tipo a partir de códigos de erro. Além disso, a criação é declarada como noexcept, o que garante a segurança contra exceções ("exception safe") durante a instanciação do objeto e evita que outra exceção seja lançada durante o disparo de um estado de exceção ([SWS_DM_00516]). A segurança de thread ("thread-safe") é garantida para a chamada do construtor ([SWS_DM_00516]). Em relação ao restante do ciclo de vida, o objeto de exceção existe durante o processo de desenrolamento de pilha (stack unwinding) até a conclusão do bloco catch correspondente (Interpretação: a posse e a destruição do objeto de exceção seguem os mecanismos padronizados do ambiente de execução de C++). Pergunta Q-ae485b4ea411b187 (aberta)

Caminho de utilização

O caminho de uso regular de ara::diag::DiagException estende-se desde a detecção de uma situação de erro no subsistema de diagnóstico até a avaliação pela camada de aplicação. O fluxo a seguir ilustra a interação dos componentes envolvidos:

Sequência ao disparar e tratar uma DiagExceptionAplicaçãoara::diag-KlasseDiagExceptionDiagnosefunktion aufrufenUse Case: Caso de erro no cluster de diagnósticoDiagException(err) instanziierenthrow DiagExceptionTratar exceção no bloco catch

Diagrama de sequência: fluxo típico na ocorrência, no lançamento e no tratamento de uma DiagException. Fontes: [SWS_DM_00515], [SWS_DM_00516].

A aplicação inicia inicialmente uma operação em uma classe funcional do módulo ara::diag. Se, durante o processamento, ocorrer uma condição que exclua um caminho regular de retorno, a classe de diagnóstico cria uma instância de ara::diag::DiagException especificando o ara::core::ErrorCode específico ([SWS_DM_00516]). Essa exceção é lançada por meio do mecanismo normal de exceções de C++. A instância de aplicação chamadora intercepta o objeto em um manipulador de exceções tipado para iniciar medidas adequadas de recuperação ou registro em log.

Cenários de erro

Como classe de sinalização de erros, a ara::diag::DiagException atende prioritariamente ao encaminhamento de estados de erro de diagnóstico. O pré-requisito para a construção bem-sucedida é o fornecimento de um parâmetro err inicializado do tipo ara::core::ErrorCode ([SWS_DM_00516]). A segurança contra exceções do construtor assegura que, mesmo em situações críticas de recursos, nenhuma exceção secundária seja disparada no caminho de construção ([SWS_DM_00516]). Após a instanciação bem-sucedida, o objeto encapsula completamente o código de erro fornecido (Interpretação: o código de erro de diagnóstico concreto presumivelmente deverá ser inspecionado pela lógica de aplicação interceptadora por meio dos mecanismos básicos herdados de ara::core::Exception). Pergunta Q-d20a61b72951321b (aberta)

Este guia foi curado por uma IA com base na especificação AUTOSAR AP R25-11.

Diagrama de classes UML

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

G nara__diag__DiagException942 DiagException + DiagException() nara__core__Exception792 Exception nara__diag__DiagException942->nara__core__Exception792 nstd__exception10 std::exception nara__core__Exception792->nstd__exception10

Construtores e destrutor

DiagException função

Construct a new DiagException from an ErrorCode.

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

Documentação dos métodos

função DiagException [SWS_DM_00516] Upstream: RS_AP_00119

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

Construct a new DiagException from an ErrorCode.

Header-Datei#include "ara/diag/diag_error_domain.h"
Scopeclass ara::diag::DiagException
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_00516
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00516@rel:R25-11#870f9f40
Content hash
870f9f40
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00516
Status: valid/unmigrated Version: rel:R25-11#6bef63b1 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_00516@rel:R25-11#6bef63b1
Point-in-Time History:
Recorded Revisions (7):
  • R25-11rel:R25-11#027392ad2026-09-30
  • R20-11rel:R20-11#f80be4a32026-10-14
  • R21-11rel:R21-11#e1dfd6d02026-10-14
  • R22-11rel:R22-11#c06b421b2026-10-14
  • R23-11rel:R23-11#d17f9fbb2026-10-14
  • R24-11rel:R24-11#6bef63b12026-10-14
  • R25-11rel:R25-11#6bef63b12026-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