DEENESPTFRRUARHIKOZHNL

класс ara::phm::PhmException

[SWS_PHM_01242] Upstream: RS_AP_00119

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

Exception type thrown by Platform Health Management.

Header-Datei#include "ara/phm/phm_error_domain.h"
Forwarding-Header#include "ara/phm/phm_fwd.h"
Scopenamespace ara::phm
Basisklasse(n)ara::core::Exception

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

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

Инкапсулирует коды ошибок Platform Health Management как потокобезопасное исключение для завершившихся сбоем операций модуля.

Класс ara::phm::PhmException служит в Platform Health Management центральным типом исключений для инкапсуляции и передачи модулеспецифичных ошибок вызывающим компонентам. При обнаружении ошибки он явно инстанцируется с ara::core::ErrorCode и выбрасывается, чтобы обеспечить структурированную обработку ошибок через соответствующие блоки catch [SWS_PHM_01243]. В качестве важного граничного условия его конструирование специфицировано как noexcept, thread-safe, а также exception-safe, благодаря чему вторичные ошибки при создании исключения исключены [SWS_PHM_01243]. Интерпретация: вызывающие стороны обычно перехватывают объект по ссылке, чтобы детерминированно проанализировать содержащийся код ошибки без динамического выделения памяти. Вопрос (открытый)

Контекст

Класс ara::phm::PhmException выступает в качестве выделенного типа исключений для Platform Health Management (PHM) внутри AUTOSAR Adaptive Platform. Согласно определению класса, он открыто наследует от ara::core::Exception и представляет собой связующее звено для передачи состояний ошибки модуля phm вызывающим системным и прикладным компонентам через стандартизированный механизм исключений C++. В архитектуре системы класс взаимодействует в первую очередь между оперативными службами PHM, выполняющими функции мониторинга и фиксирующими состояния ошибки при нарушениях правил, и вышестоящими подпрограммами обработки ошибок приложения. Благодаря интеграции в фундаментальную модель обработки ошибок ara::core обеспечивается унифицированная транспортировка и обработка доменно-специфичных отчетов об ошибках из Platform Health Management.

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

Жизненный цикл экземпляра ara::phm::PhmException начинается с явного инстанцирования в случае ошибки. Согласно [SWS_PHM_01243], объект создается через конструктор PhmException(ara::core::ErrorCode errorCode) при подключении заголовочного файла ara/phm/phm_error_domain.h. Создание объявлено как noexcept и обладает свойствами как «exception safe», так и «thread-safe» [SWS_PHM_01243]. Это гарантирует, что инстанцирование самого объекта исключения происходит безопасно даже при высоком параллелизме и ни в какой момент времени не вызывает неожиданных вторичных исключений.

Объект инкапсулирует переданный ara::core::ErrorCode и после своего создания обладает неизменяемым состоянием. Во время развертывания стека объект исключения транспортируется средой выполнения. Уничтожение происходит детерминированно при выходе из обрабатывающего блока catch в соответствии со стандартными правилами C++. Интерпретация: экземпляры, вероятно, обычно создаются непосредственно в выражении throw на стеке и перехватываются по ссылке (const ara::phm::PhmException&), благодаря чему на стороне вызывающего объекта не требуется динамическое управление памятью. Вопрос Q-37fc47021a78a0db (открытый)

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

Типичный путь использования начинается тогда, когда контролируемая операция Platform Health Management завершается сбоем или обнаруживается недопустимое отклонение состояния. Инициирующая функция PHM затем инициализирует объект исключения с соответствующим кодом ошибки и выбрасывает его из [SWS_PHM_01243]. На вызывающей стороне защищенный фрагмент кода выполняется внутри блока try-catch. Вероятно, приложения перехватывают исключение либо специфически как ara::phm::PhmException, либо полиморфно через базовый класс ara::core::Exception. Вопрос Q-54638c0dde7d9195 (открытый) В обработчике исключений содержащийся ara::core::ErrorCode извлекается для анализа причины и инициации соответствующих контрмер или стратегий аварийного режима.

Сценарий использования для возбуждения и обработки PhmExceptionПриложениеPHM-Dienstобработка ошибокPHM-FunktionsaufrufОбнаружение внутренней ошибкиPhmException(errorCode) werfenAuswertung von ErrorCodeВозврат после обработки ошибки

Диаграмма последовательности: типичный процесс от обнаружения ошибки в PHM через выбрасывание ara::phm::PhmException до анализа в обработчике. Источники: [SWS_PHM_01243].

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

Центральной составляющей ara::phm::PhmException является транспортировка кода ошибки во время выполнения. В качестве предусловия для создания объекта действует передача валидного ara::core::ErrorCode [SWS_PHM_01243]. Постусловием вызова является полностью инициализированный объект исключения, предоставляющий переданный код ошибки в неизменном виде для запроса.

Поскольку конструктор явно специфицирован как noexcept и «exception safe» [SWS_PHM_01243], возникновение исключений во время конструирования самого исключения исключено. Сбой создания объекта, таким образом, произойти не может, что предотвращает преждевременное аварийное завершение через std::terminate во время формирования отчета об ошибке. Специфицированная потокобезопасность («thread-safe») защищает, кроме того, от повреждения данных, если несколько потоков параллельно сообщают о состояниях ошибки через собственные исключения [SWS_PHM_01243]. Сценарии ошибок, следовательно, касаются не самого класса исключений, а отражают прикладные причины ошибок, закодированные в инкапсулированном ara::core::ErrorCode домена ошибок PHM.

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

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

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

G nara__phm__PhmException101 PhmException + PhmException() nara__core__Exception792 Exception nara__phm__PhmException101->nara__core__Exception792 nstd__exception10 std::exception nara__core__Exception792->nstd__exception10

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

PhmException функция

Construct a new PlatformHealthManagement exception object containing an error code.

explicit PhmException (ara::core::ErrorCode errorCode) noexcept;

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

функция PhmException [SWS_PHM_01243] Upstream: RS_AP_00119, RS_AP_00159

explicit PhmException (ara::core::ErrorCode errorCode) noexcept;

Construct a new PlatformHealthManagement exception object containing an error code.

Header-Datei#include "ara/phm/phm_error_domain.h"
Scopeclass ara::phm::PhmException
Exception-Sicherheitexception safe
Thread-Sicherheitthread-safe

Parameter (in)

ParameterBeschreibung
errorCodeThe error code.

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_PHM_01243
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_PHM_01243@rel:R25-11#c011decc
Content hash
c011decc
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_PlatformHealthManagement.pdf#nameddest=SWS_PHM_01243
Status: valid/unmigrated Version: rel:R25-11#47b59c13 Versionshistorie & Revisions (1 transition, 5 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_PHM_01243@rel:R25-11#47b59c13
Point-in-Time History:
Recorded Revisions (5):
  • R25-11rel:R25-11#9af686bd2026-09-30
  • R22-11rel:R22-11#eabc2e272026-10-14
  • R23-11rel:R23-11#b6f2d9e42026-10-14
  • R24-11rel:R24-11#47b59c132026-10-14
  • R25-11rel:R25-11#47b59c132026-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