DEENESPTFRRUARHIKOZHNL

classe 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

Guia do utilizadorGERADO POR IA

Sinaliza erros de diagnóstico específicos de SOVD como exceção exception safe com código de erro associado para chamadores.
GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 58783cae6416 Procedência Perguntas em aberto (2)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Sinaliza erros de diagnóstico específicos de SOVD como exceção exception safe com código de erro associado para chamadores.

A classe ara::diag::DiagSovdException serve como um tipo de exceção especializado para Service-Oriented Vehicle Diagnostics (SOVD) e é disparada por classes de diagnóstico no módulo diag para sinalização de erros [SWS_DM_01807]. Ela deriva de ara::core::Exception e é instanciada explicitamente com um ara::core::ErrorCode em situações de erro para transmitir informações de erro ao contexto chamador por meio do desenrolamento de pilha (stack unwinding) de C++ [SWS_DM_01808]. Como restrição central, o construtor é especificado como noexcept, garantindo assim total segurança contra exceções e segurança de thread na criação de objetos.

Contexto

A classe ara::diag::DiagSovdException representa o tipo central de exceção para Service-Oriented Vehicle Diagnostics (SOVD) no módulo de diagnóstico da AUTOSAR Adaptive Platform ([SWS_DM_01807], SWS Diagnostics §8.51.4 «Class: DiagSovdException»). Ela é disparada por classes internas de diagnóstico para indicar estados de erro específicos durante o processamento de requisições SOVD ([SWS_DM_01807], SWS Diagnostics, p. 69).

A classe deriva publicamente da exceção base geral ara::core::Exception ([SWS_DM_01807], SWS Diagnostics §8.51.4). Entre seus parceiros diretos de interação estão as classes funcionais de diagnóstico do módulo diag, que analisam requisições de diagnóstico e disparam exceções em caso de erros, bem como o software aplicativo chamador, que deve interceptar e processar essas exceções. A classe está declarada no cabeçalho ara/diag/diag_sovd_error_domain.h para atender a requisitos arquiteturais de nível superior ([SWS_DM_01808], SWS Diagnostics §8.51.4.1.1.1 «DiagSovdException»).

Ciclo de vida

A instanciação de ara::diag::DiagSovdException ocorre por meio de um construtor que aceita obrigatoriamente um ara::core::ErrorCode como parâmetro err ([SWS_DM_01808], SWS Diagnostics §8.51.4.1.1.1). Esse construtor é declarado como explicit para evitar conversões implícitas de códigos de erro em objetos de exceção, e marcado como noexcept ([SWS_DM_01808]).

Em termos de robustez e concorrência, a especificação assegura que a construção é totalmente exception-safe (exception safe) e thread-safe ([SWS_DM_01808]). Com isso, é garantido que a própria criação do erro não gere exceções adicionais ou inconsistências, mesmo em cenários concorrentes de diagnóstico. O ciclo de vida da exceção segue o desenrolamento padrão de pilha do C++: o objeto é criado dentro de uma função de diagnóstico em caso de erro, propagado pelos níveis de chamada e destruído deterministicamente ao sair do bloco catch de tratamento.

Caminho de utilização

O fluxo típico na utilização de ara::diag::DiagSovdException divide-se nas seguintes etapas:

  • Uma aplicação inicia uma operação de diagnóstico relacionada a SOVD em uma interface do módulo diag.
  • O componente de diagnóstico responsável identifica uma condição com falha e gera um ara::core::ErrorCode correspondente a partir do domínio de erros de SOVD ([SWS_DM_01808]).
  • O componente constrói a exceção por meio de explicit DiagSovdException(err) e a lança ([SWS_DM_01808], [SWS_DM_01807]).
  • A aplicação intercepta a exceção por meio de catch (const ara::diag::DiagSovdException& ex) ou de forma polimórfica via const ara::core::Exception& para reagir ao estado de erro.
Fluxo do tratamento de exceções com DiagSovdExceptionAplicaçãoDiagnoseklasseDiagSovdExceptionExecutar chamada de diagnóstico SOVDSOVD-Fehlerbedingung feststellenara::core::ErrorCode erzeugenDiagSovdException(err) konstruierenthrow DiagSovdExceptioncatch (const DiagSovdException& ex)Analisar e tratar erro

Diagrama de sequência: sequência de chamada e tratamento no disparo de uma DiagSovdException. Fontes: [SWS_DM_01807], [SWS_DM_01808].

Cenários de erro

Como transportador de erros, a própria classe serve ao tratamento de estados de exceção ([SWS_DM_01807]). O fornecimento de um ara::core::ErrorCode inicializado constitui a condição prévia formal para a instanciação ([SWS_DM_01808]). Como o construtor é declarado como noexcept, não ocorrem exceções na própria criação do objeto ([SWS_DM_01808]).

Interpretação: Presume-se que a instância encapsule permanentemente o código de erro fornecido, de modo que manipuladores de erro posteriores possam inspecioná-lo por meio de funções herdadas de ara::core::Exception. Pergunta Q-332b95b96849e379 (aberta) Em configurações de sistema com exceções de C++ desativadas, o componente de diagnóstico presumivelmente deverá preferir mecanismos alternativos de erro, enquanto DiagSovdException representa o caminho dedicado para tratamentos de exceção.

Este guia baseia-se na especificação AUTOSAR Adaptive Platform R25-11 e resume os requisitos para o tratamento de exceções de SOVD.

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

Construtores e destrutor

Construct a new DiagSovdException from an ErrorCode.

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

Documentação dos métodos

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