DEENESPTFRRUARHIKOZHNL

класс 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

Руководство пользователяСОЗДАНО ИИ

Сигнализирует вызывающей стороне об SOVD-специфических ошибках диагностики в виде безопасного относительно исключений Exception с ассоциированным кодом ошибки.
СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 58783cae6416 Происхождение Открытые вопросы (2)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Сигнализирует вызывающей стороне об SOVD-специфических ошибках диагностики в виде безопасного относительно исключений Exception с ассоциированным кодом ошибки.

Класс ara::diag::DiagSovdException служит специализированным типом исключения для Service-Oriented Vehicle Diagnostics (SOVD) и генерируется диагностическими классами в модуле diag для сигнализации об ошибках [SWS_DM_01807]. Он наследуется от ara::core::Exception и при ошибочных ситуациях явно инстанцируется с ara::core::ErrorCode для передачи информации об ошибке через развертывание стека C++ в вызывающий контекст [SWS_DM_01808]. В качестве ключевого граничного условия конструктор специфицирован как noexcept и тем самым обеспечивает полную безопасность относительно исключений, а также потокобезопасность при создании объекта.

Контекст

Класс ara::diag::DiagSovdException представляет собой центральный тип исключения для Service-Oriented Vehicle Diagnostics (SOVD) в диагностическом модуле AUTOSAR Adaptive Platform ([SWS_DM_01807], SWS Diagnostics §8.51.4 «Class: DiagSovdException»). Он генерируется внутренними диагностическими классами для индикации специфических состояний ошибок во время обработки SOVD-запросов ([SWS_DM_01807], SWS Diagnostics, с. 69).

Класс публично наследуется от общего базового исключения ara::core::Exception ([SWS_DM_01807], SWS Diagnostics §8.51.4). К его прямым партнерам по взаимодействию относятся функциональные диагностические классы модуля diag, которые анализируют диагностические запросы и генерируют исключения при ошибках, а также вызывающее прикладное программное обеспечение, обязанное перехватывать и обрабатывать такие исключения. Класс объявлен в заголовочном файле ara/diag/diag_sovd_error_domain.h для выполнения вышестоящих архитектурных требований ([SWS_DM_01808], SWS Diagnostics §8.51.4.1.1.1 «DiagSovdException»).

Жизненный цикл

Инстанцирование ara::diag::DiagSovdException осуществляется через конструктор, который в обязательном порядке принимает ara::core::ErrorCode в качестве параметра err ([SWS_DM_01808], SWS Diagnostics §8.51.4.1.1.1). Этот конструктор объявлен как explicit во избежание неявных преобразований кодов ошибок в объекты исключений и помечен как noexcept ([SWS_DM_01808]).

Что касается надежности и параллелизма, спецификация гарантирует, что конструирование является полностью исключитель-безопасным (exception safe) и потокобезопасным ([SWS_DM_01808]). Благодаря этому гарантируется, что создание ошибки даже в сценариях параллельной диагностики не вызовет дальнейших исключений или несоответствий. Жизненный цикл исключения следует стандартной раскрутке стека C++: объект создается в случае ошибки внутри функции диагностики, передается по уровням вызова и детерминированно уничтожается при выходе из обрабатывающего блока catch.

Путь использования

Типичный процесс при использовании ara::diag::DiagSovdException делится на следующие шаги:

  • Приложение инициирует диагностическую операцию, связанную с SOVD, на интерфейсе модуля diag.
  • Ответственный компонент диагностики обнаруживает ошибочное условие и создает соответствующий ara::core::ErrorCode из домена ошибок SOVD ([SWS_DM_01808]).
  • Компонент конструирует исключение с помощью explicit DiagSovdException(err) и генерирует его ([SWS_DM_01808], [SWS_DM_01807]).
  • Приложение перехватывает исключение через catch (const ara::diag::DiagSovdException& ex) или полиморфно через const ara::core::Exception&, чтобы отреагировать на состояние ошибки.
Последовательность обработки исключений с помощью DiagSovdExceptionПриложениеDiagnoseklasseDiagSovdExceptionВыполнить диагностический вызов SOVDSOVD-Fehlerbedingung feststellenara::core::ErrorCode erzeugenDiagSovdException(err) konstruierenthrow DiagSovdExceptioncatch (const DiagSovdException& ex)Проанализировать и обработать ошибку

Диаграмма последовательности: последовательность вызовов и обработки при возникновении DiagSovdException. Источники: [SWS_DM_01807], [SWS_DM_01808].

Сценарии ошибок

В качестве средства переноса ошибок сам класс служит для обработки исключительных состояний ([SWS_DM_01807]). Формальным предусловием для создания является предоставление инициализированного ara::core::ErrorCode ([SWS_DM_01808]). Поскольку конструктор объявлен как noexcept, при самом создании объекта исключения не возникают ([SWS_DM_01808]).

Интерпретация: по всей видимости, экземпляр инкапсулирует переданный код ошибки на постоянной основе, благодаря чему нижестоящие обработчики ошибок могут инспектировать его с помощью унаследованных функций ara::core::Exception. Вопрос Q-332b95b96849e379 (открытый) В конфигурациях системы с отключенными исключениями C++ компонент диагностики, вероятно, отдает предпочтение альтернативным механизмам обработки ошибок, тогда как DiagSovdException представляет собой выделенный путь для обработки исключений.

Данное руководство основано на спецификации AUTOSAR Adaptive Platform R25-11 и обобщает требования к обработке исключений SOVD.

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

Конструкторы и деструктор

DiagSovdException функция

Construct a new DiagSovdException from an ErrorCode.

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

Документация методов

функция 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#27d5c072
Content hash
27d5c072
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