DEENESPTFRRUARHIKOZHNL

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

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

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

Служит для инкапсуляции и передачи кодов ошибок диагностики в виде C++-исключения вышестоящим вызывающим сторонам.

Класс ara::diag::DiagException выступает в качестве специализированного типа исключения для сигнализации об ошибках из диагностических классов AUTOSAR Adaptive Platform ([SWS_DM_00515]). Он инкапсулирует ara::core::ErrorCode и генерируется при внутренних ошибках для структурированной передачи состояний ошибок вызывающим приложениям ([SWS_DM_00516]). Его конструктор является потокобезопасным и объявлен безопасным относительно исключений посредством noexcept ([SWS_DM_00516]).

Контекст

Класс ara::diag::DiagException образует центральный тип исключения для функционального кластера AUTOSAR Adaptive Platform Diagnostics (SWS Diagnostics §8.11.4 «Class: DiagException», [SWS_DM_00515]). Он напрямую наследуется от базового класса ara::core::Exception и отвечает за то, чтобы в исключительных случаях сообщать вызывающей стороне о состояниях ошибок, возникающих внутри диагностических классов. Основными партнерами по взаимодействию являются предоставляющие диагностические классы внутри ara::diag, сигнализирующие об исключительных ситуациях, а также использующее прикладное программное обеспечение, которое запрашивает диагностические операции и перехватывает потенциальные исключения. Благодаря объявлению в заголовочном файле ara/diag/diag_error_domain.h класс исключения напрямую связан с предметными областями диагностических ошибок ([SWS_DM_00516]).

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

Инстанцирование ara::diag::DiagException осуществляется путем передачи кода ошибки типа ara::core::ErrorCode в конструктор ([SWS_DM_00516]). Этот конструктор определен как explicit, что предотвращает неявные преобразования типов из кодов ошибок. Кроме того, создание объявлено как noexcept, что гарантирует безопасность исключений («exception safe») при создании объекта и предотвращает генерацию повторного исключения во время возбуждения исключительного состояния ([SWS_DM_00516]). Для вызова конструктора гарантируется потокобезопасность («thread-safe») ([SWS_DM_00516]). Что касается дальнейшего жизненного цикла, объект исключения существует в течение процесса развертывания стека (stack unwinding) вплоть до завершения соответствующего блока catch (Интерпретация: отношение владения и уничтожение объекта исключения следуют стандартизированным механизмам среды выполнения C++). Вопрос Q-ae485b4ea411b187 (открытый)

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

Штатный сценарий использования ara::diag::DiagException простирается от обнаружения ошибочной ситуации в диагностической подсистеме до ее обработки на уровне приложения. Следующая последовательность иллюстрирует взаимодействие задействованных компонентов:

Последовательность создания и обработки DiagExceptionПриложениеara::diag-KlasseDiagExceptionDiagnosefunktion aufrufenUse Case: Случай ошибки в диагностическом кластереDiagException(err) instanziierenthrow DiagExceptionОбработка исключения в блоке catch

Диаграмма последовательности: типичный процесс возникновения, генерации и обработки DiagException. Источники: [SWS_DM_00515], [SWS_DM_00516].

Приложение сначала инициирует операцию над функциональным классом модуля ara::diag. Если во время обработки возникает условие, исключающее штатный путь возврата, диагностический класс создает экземпляр ara::diag::DiagException с указанием конкретного ara::core::ErrorCode ([SWS_DM_00516]). Это исключение генерируется через стандартный механизм исключений C++. Вызывающий экземпляр приложения перехватывает объект в типизированном обработчике исключений, чтобы инициировать соответствующие меры по восстановлению или протоколированию.

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

Являясь классом сигнализации об ошибках, ara::diag::DiagException преимущественно обслуживает передачу состояний диагностических ошибок. Предусловием для успешного конструирования выступает предоставление инициализированного параметра err типа ara::core::ErrorCode ([SWS_DM_00516]). Безопасность исключений конструктора гарантирует, что даже в критических по ресурсам ситуациях в пути конструирования не будут вызваны вторичные исключения ([SWS_DM_00516]). После успешного инстанцирования объект полностью инкапсулирует переданный код ошибки (Интерпретация: конкретный код ошибки диагностики, вероятно, проверяется перехватывающей логикой приложения через унаследованные базовые механизмы ara::core::Exception). Вопрос Q-d20a61b72951321b (открытый)

Настоящее руководство было сформировано ИИ на основе спецификации AUTOSAR AP R25-11.

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

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

DiagException функция

Construct a new DiagException from an ErrorCode.

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

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

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