DEENESPTFRRUARHIKOZHNL

класс ara::diag::DiagUdsNrcException

[SWS_DM_00527] Upstream: RS_AP_00119

class DiagUdsNrcException :              public ara::core::Exception {...};

Exception type thrown by Diag classes.

Header-Datei#include "ara/diag/diag_uds_nrc_error_domain.h"
Forwarding-Header#include "ara/diag/diag_fwd.h"
Scopenamespace ara::diag
Basisklasse(n)ara::core::Exception

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

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

Служит потокобезопасным исключением для сигнализации и передачи ошибок UDS NRC в классах диагностики.

Класс ara::diag::DiagUdsNrcException служит стандартизированным исключением для сигнализации об ошибках UDS NRC классами диагностики AUTOSAR Adaptive Platform (AUTOSAR_AP_SWS_Diagnostics §8.12.4 «Class: DiagUdsNrcException»). При возникновении соответствующего ошибочного условия он инстанцируется с ara::core::ErrorCode, генерируется и перехватывается вызывающим приложением для обработки ошибки. В качестве существенного граничного условия его конструктор согласно [SWS_DM_00528] гарантирует полную исключительную безопасность (noexcept), а также потокобезопасность, обеспечивая надежное создание объектов даже в контекстах параллельного выполнения.

Контекст

Класс ara::diag::DiagUdsNrcException образует в AUTOSAR Adaptive Platform центральный тип исключения для классов диагностики модуля diag (AUTOSAR_AP_SWS_Diagnostics §8.12.4 «Class: DiagUdsNrcException»). Согласно спецификации [SWS_DM_00527], он определяет стандартизированный интерфейс исключений C++, который напрямую наследуется от базового класса исключений ara::core::Exception. Его основная обязанность заключается в передаче ошибочных условий из контекста диагностики, в частности отрицательных кодов ответа (Negative Response Codes, NRC) протокола UDS, в виде типизированных исключений через программный интерфейс. При этом класс тесно взаимодействует с ara::core::ErrorCode, инкапсулирующим конкретный код ошибки, а также с вызывающими слоями приложения, которые отправляют диагностические запросы и должны перехватывать возможные ошибки ([SWS_DM_00528]). Благодаря объявлению в заголовочном файле ara/diag/diag_uds_nrc_error_domain.h исключение непосредственно связано с соответствующим доменом ошибок UDS NRC ([SWS_DM_00528]).
diag_uds_nrc_context diag_classes Классы ara::diag nrc_exception ara::diag::DiagUdsNrcException diag_classes->nrc_exception создает и генерирует app Anwendungssoftware nrc_exception->app передает ошибку в error_code ara::core::ErrorCode error_code->nrc_exception initialisiert

Контекстная диаграмма: интеграция DiagUdsNrcException во взаимодействие между кодом ошибки, классами диагностики и прикладным программным обеспечением. Источники: [SWS_DM_00527], [SWS_DM_00528], AUTOSAR_AP_SWS_Diagnostics §8.12.4 «Class: DiagUdsNrcException»

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

Жизненный цикл экземпляра ara::diag::DiagUdsNrcException начинается с его явного инстанцирования классом диагностики или внутренней подпрограммой обработки ошибок. Согласно [SWS_DM_00528], класс имеет конструктор explicit DiagUdsNrcException(ara::core::ErrorCode err) noexcept;, принимающий лежащий в основе код ошибки в качестве параметра err. Этот конструктор явно определен как исключитель-безопасный (exception safe) и не генерирующий исключений (noexcept) ([SWS_DM_00528]), что гарантирует невозможность возникновения вторичных исключений при создании объекта на пути ошибки. Кроме того, создание классифицировано согласно [SWS_DM_00528] как потокобезопасное (thread-safe). После создания экземпляр исключения обычно генерируется по значению через систему времени выполнения C++. Владение объектом во время раскрутки стека остается за средой выполнения, пока исключение не будет связано и обработано в соответствующем блоке catch. С выходом из блока обработки исключения жизненный цикл объекта завершается штатным уничтожением.

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

Типичный путь использования включает распознавание ошибки UDS NRC, создание исключения и его последующую обработку приложением:
  1. Компонент приложения вызывает функцию диагностики или сервисный интерфейс класса ara::diag.
  2. Класс диагностики в ходе обработки устанавливает, что запрос не может быть успешно обслужен и имеет место UDS NRC, после чего создает соответствующий ara::core::ErrorCode.
  3. С передачей этого кода ошибки исключение ara::diag::DiagUdsNrcException инстанцируется через свой конструктор ([SWS_DM_00528]).
  4. Класс диагностики генерирует объект исключения из контекста выполнения (AUTOSAR_AP_SWS_Diagnostics §8.12.4 «Class: DiagUdsNrcException»).
  5. Вызывающее приложение перехватывает исключение либо точно по типу как ara::diag::DiagUdsNrcException ([SWS_DM_00527]), либо полиморфно через базовый класс ara::core::Exception и обращается к информации об ошибке.
Последовательность обработки исключений с помощью DiagUdsNrcExceptionПриложениеDiag-KlasseDiagUdsNrcExceptionВыполнить диагностическую функциюUDS-NRC-Bedingung erkannt, ErrorCode erzeugtDiagUdsNrcException(err)throw DiagUdsNrcExceptioncatch и анализ ошибки

Диаграмма последовательности: типичная последовательность создания, генерации и перехвата DiagUdsNrcException. Источники: [SWS_DM_00527], [SWS_DM_00528], AUTOSAR_AP_SWS_Diagnostics §8.12.4 «Class: DiagUdsNrcException»

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

Поскольку ara::diag::DiagUdsNrcException сам по себе является средством сигнализации об ошибках, сценарии сбоев относятся прежде всего к надежности и параллелизму при создании исключения:
  • Надежное создание объектов: благодаря спецификации как noexcept и exception safe ([SWS_DM_00528]) исключено, что при конструировании будет сгенерировано вторичное исключение. Это предотвращает фатальные аварийные завершения во время выполнения, такие как std::terminate, в критических путях обработки ошибок.
  • Действительность кода ошибки: в качестве предусловия для инстанцирования должен быть доступен валидный ara::core::ErrorCode ([SWS_DM_00528]). Обычно он происходит из домена ошибок, определенного ara/diag/diag_uds_nrc_error_domain.h.
  • Параллельная обработка диагностики: поскольку конструктор специфицирован как thread-safe ([SWS_DM_00528]), несколько потоков могут параллельно создавать диагностические исключения без возникновения состояний гонки при инициализации объекта исключения.

Данное руководство было сгенерировано системой ИИ на основе спецификации AUTOSAR R25-11.

UML-диаграмма классов

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

G nara__diag__DiagUdsNrcException343 DiagUdsNrcException + DiagUdsNrcException() nara__core__Exception792 Exception nara__diag__DiagUdsNrcException343->nara__core__Exception792 nstd__exception10 std::exception nara__core__Exception792->nstd__exception10

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

DiagUdsNrcException функция

Construct a new DiagException from an ErrorCode.

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

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

функция DiagUdsNrcException [SWS_DM_00528] Upstream: RS_AP_00119

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

Construct a new DiagException from an ErrorCode.

Header-Datei#include "ara/diag/diag_uds_nrc_error_domain.h"
Scopeclass ara::diag::DiagUdsNrcException
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_00528
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00528@rel:R25-11#ab96aef9
Content hash
ab96aef9
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00528
Status: valid/unmigrated Version: rel:R25-11#55ae2ae1 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_00528@rel:R25-11#55ae2ae1
Point-in-Time History:
Recorded Revisions (7):
  • R25-11rel:R25-11#d0877d832026-09-30
  • R20-11rel:R20-11#cfe41a2e2026-10-14
  • R21-11rel:R21-11#cfe41a2e2026-10-14
  • R22-11rel:R22-11#b5842e552026-10-14
  • R23-11rel:R23-11#ccbb9a702026-10-14
  • R24-11rel:R24-11#55ae2ae12026-10-14
  • R25-11rel:R25-11#55ae2ae12026-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