DEENESPTFRRUARHIKOZHNL

класс ara::diag::DiagOfferException

[SWS_DM_00985] Upstream: RS_AP_00119

class DiagOfferException :           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

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

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

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

Класс ara::diag::DiagOfferException служит специальным типом исключения C++, генерируемым диагностическими классами AUTOSAR Adaptive Platform для сигнализации об ошибках ([SWS_DM_00985]). Он наследуется от ara::core::Exception и потокобезопасно инстанцируется через конструктор noexcept с указанием ara::core::ErrorCode ([SWS_DM_00986]). Исключение, предположительно, возникает преимущественно при неудачной попытке предоставления диагностических сервисов и должно перехватываться вызывающим приложением для предотвращения неконтролируемого аварийного завершения процесса. Вопрос (открытый)

Контекст

Класс ara::diag::DiagOfferException представляет собой центральный тип исключения диагностического модуля в рамках AUTOSAR Adaptive Platform ([SWS_DM_00985], SWS Diagnostics §8.11.6 «Class: DiagOfferException»). Согласно его спецификации, речь идет об исключении, генерируемом диагностическими классами ("Exception type thrown by Diag classes"). Класс публично наследуется от базового класса ara::core::Exception и подключается в приложениях через заголовочный файл ara/diag/diag_error_domain.h ([SWS_DM_00986]).

К основным партнерам по взаимодействию относятся функциональные классы управления диагностикой, базовая архитектура ошибок AUTOSAR Adaptive (представленная ara::core::ErrorCode), а также прикладное программное обеспечение, предоставляющее диагностические сервисы. Имя класса указывает на то, что это исключение, вероятно, применяется тогда, когда попытка предоставления или регистрации диагностических сервисов соответствующими Diag-классами завершается неудачей (Интерпретация). Вопрос Q-47046201c9fd38c3 (открытый)

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

Инстанцирование ara::diag::DiagOfferException осуществляется через его единственный специфицированный конструктор explicit DiagOfferException(ara::core::ErrorCode err) noexcept ([SWS_DM_00986], SWS Diagnostics §8.11.6.1.1.1 «DiagOfferException»). При этом исключение напрямую связывается с конкретным кодом ошибки. Поскольку конструктор объявлен как noexcept, гарантируется, что при создании самого объекта исключения не возникнет никаких других ошибок или рекурсивных исключений ([SWS_DM_00986]).

В плане жизненного цикла класс подчиняется стандартным механизмам обработки исключений C++: он размещается в памяти исключений среды выполнения, передается по стеку вызовов и автоматически освобождается после завершения обрабатывающего блока catch. Согласно спецификации, конструирование является потокобезопасным и exception-safe ([SWS_DM_00986]). Объект исключения после своего создания не имеет сложных внутренних смен состояний; вероятно, он функционирует как неизменяемая оболочка для транспортировки переданного кода ошибки (Интерпретация). Вопрос Q-09c6e0ad610717e9 (открытый)

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

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

  • Приложение вызывает метод диагностического класса для предоставления диагностического сервиса или порта (операция Offer).
  • Диагностический класс во время инициализации или регистрации фиксирует ошибочное условие и инстанцирует подходящий ara::core::ErrorCode.
  • Диагностический класс конструирует экземпляр ara::diag::DiagOfferException с передачей этого кода ошибки ([SWS_DM_00986]) и генерирует это исключение.
  • Вызывающее прикладное программное обеспечение перехватывает исключение в рамках блока try-catch.
  • Вызывающая сторона извлекает код ошибки из исключения и инициирует подходящие стратегии обработки сбоя или повтора.
Обработка ошибок при неудачном предложении через DiagOfferExceptionПриложениеDiag-KlasseDiagOfferExceptionDienst anbieten (Offer)Fehler festgestellt: ErrorCode erzeugenDiagOfferException(err)throw DiagOfferExceptioncatch (const DiagOfferException& e)Анализ и обработка ErrorCode

Диаграмма последовательности: типичный процесс при сигнализации и обработке ошибки посредством DiagOfferException. Источники: [SWS_DM_00985], [SWS_DM_00986].

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

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

Если сгенерированное исключение DiagOfferException не перехватывается прикладным программным обеспечением, это по умолчанию приводит к вызову std::terminate и тем самым к неконтролируемому аварийному завершению процесса. В силу наследования от ara::core::Exception, вероятно, предусмотрено, что наряду со специализированным перехватом ara::diag::DiagOfferException может срабатывать и общий обработчик для ara::core::Exception (Интерпретация), обеспечивая надежную отказоустойчивость на уровне процесса. Вопрос Q-d0cf602a077c4dae (открытый)

Настоящее руководство основано на спецификации AUTOSAR Adaptive R25-11 (модуль diag) и было сгенерировано автоматически для autodocs.

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

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

G nara__diag__DiagOfferException442 DiagOfferException + DiagOfferException() nara__core__Exception792 Exception nara__diag__DiagOfferException442->nara__core__Exception792 nstd__exception10 std::exception nara__core__Exception792->nstd__exception10

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

DiagOfferException функция

Construct a new DiagException from an ErrorCode.

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

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

функция DiagOfferException [SWS_DM_00986] Upstream: RS_AP_00119

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

Construct a new DiagException from an ErrorCode.

Header-Datei#include "ara/diag/diag_error_domain.h"
Scopeclass ara::diag::DiagOfferException
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_00986
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00986@rel:R25-11#3d3a2cea
Content hash
3d3a2cea
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00986
Status: valid/unmigrated Version: rel:R25-11#5fd23a99 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_00986@rel:R25-11#5fd23a99
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#346e60702026-09-30
  • R23-11rel:R23-11#f79e89952026-10-14
  • R24-11rel:R24-11#5fd23a992026-10-14
  • R25-11rel:R25-11#5fd23a992026-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