DEENESPTFRRUARHIKOZHNL

класс ara::per::PerException

[SWS_PER_00354] Upstream: RS_AP_00122, RS_AP_00127

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

Exception type thrown by Persistency.

Header-Datei#include "ara/per/per_error_domain.h"
Forwarding-Header#include "ara/per/per_fwd.h"
Scopenamespace ara::per
Basisklasse(n)ara::core::Exception

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

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

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

Класс ara::per::PerException служит в AUTOSAR Adaptive Platform специфическим типом исключений для сигнализации об ошибках из модуля персистентности. Он предоставляется через заголовочный файл ara/per/per_error_domain.h и наследует от базового класса ara::core::Exception [SWS_PER_00355]. Инстанцирование выполняется явно путем передачи ara::core::ErrorCode, инкапсулирующего конкретную причину ошибки. Благодаря объявлению конструктора как noexcept создание специфицировано как полностью безопасное относительно исключений, а также потокобезопасное [SWS_PER_00355].

Контекст

Класс ara::per::PerException функционирует как центральный специализированный тип исключений для функционального кластера персистентности (модуль per) внутри AUTOSAR Adaptive Platform в релизе R25-11. Согласно своему формальному синтаксису, класс открыто унаследован от общего базового исключения ara::core::Exception. Его основная ответственность заключается в том, чтобы сигнализировать о критических или не поддающихся непосредственной обработке через регулярные возвращаемые значения состояниях ошибки из подсистемы персистентности на вышестоящие уровни приложения. Класс определяется в заголовочном файле ara/per/per_error_domain.h [SWS_PER_00355]. В архитектуре он тесно взаимодействует с инфраструктурой обработки ошибок платформы, транспортируя в каждом экземпляре ara::core::ErrorCode для точной диагностики ошибки [SWS_PER_00355].

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

Жизненный цикл объекта ara::per::PerException напрямую связан с обнаружением и передачей ошибки внутри операций персистентности. Инстанцирование выполняется через явный конструктор, принимающий ровно один параметр типа ara::core::ErrorCode [SWS_PER_00355]. Этот конструктор объявлен как explicit для предотвращения неявных преобразований типов из кодов ошибок и снабжен спецификацией noexcept [SWS_PER_00355]. Это гарантирует, что во время конструирования самого объекта исключения не могут возникнуть дополнительные исключения; создание, таким образом, является полностью безопасным относительно исключений (exception safe) [SWS_PER_00355].

В отношении параллелизма создание ara::per::PerException специфицировано как потокобезопасное (thread-safe) [SWS_PER_00355]. После вызова конструктора объект выбрасывается по стеку вызовов. Владение и уничтожение подчиняются стандартным правилам C++ для обработки исключений: объект остается в области памяти среды выполнения до завершения перехватывающего блока catch и затем детерминированно уничтожается.

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

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

  • Обнаружение ошибки и создание кода: Модуль персистентности идентифицирует недопустимое состояние или сбой операции сохранения и отображает его в соответствующий ara::core::ErrorCode.
  • Инстанцирование: С передачей этого кода ошибки объект исключения явно создается через PerException(errorCode) [SWS_PER_00355].
  • Выбрасывание исключения: Подсистема персистентности выбрасывает экземпляр исключения из затронутого функционального интерфейса.
  • Перехват и анализ: Вызывающее приложение перехватывает объект специфически как ara::per::PerException или полиморфно как ara::core::Exception либо std::exception. Интерпретация: приложение, вероятно, затем считывает инкапсулированный ara::core::ErrorCode через методы доступа, унаследованные от базового класса, для инициации адресных мер по устранению ошибки. Вопрос Q-6e48fd125d9938d8 (открытый)

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

Поскольку ara::per::PerException служит для представления ошибок, при сценариях ошибок на переднем плане находятся надежность создания объекта и целостность информации об ошибке. В качестве существенного предусловия конструктор требует валидный ara::core::ErrorCode в качестве входного параметра [SWS_PER_00355]. Поскольку конструктор объявлен как noexcept, возникновение вторичных исключений во время формирования отчета об ошибке исключено [SWS_PER_00355]. Кроме того, специфицированная потокобезопасность гарантирует, что даже при параллельных ошибках в нескольких потоках выполнения не возникнет повреждения данных или нескоординированных побочных эффектов [SWS_PER_00355].

Настоящее руководство основано исключительно на данных спецификации AUTOSAR Adaptive Platform релиза R25-11.

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

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

G nara__per__PerException768 PerException + PerException() nara__core__Exception792 Exception nara__per__PerException768->nara__core__Exception792 nstd__exception10 std::exception nara__core__Exception792->nstd__exception10

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

PerException функция

Construct a new Persistency exception object containing an error code.

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

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

функция PerException [SWS_PER_00355] Upstream: RS_AP_00120, RS_AP_00121, RS_AP_00135, RS_AP_00159

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

Construct a new Persistency exception object containing an error code.

Header-Datei#include "ara/per/per_error_domain.h"
Scopeclass ara::per::PerException
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_PER_00355
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_PER_00355@rel:R25-11#a0942d62
Content hash
a0942d62
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Persistency.pdf#nameddest=SWS_PER_00355
Status: valid/unmigrated Version: rel:R25-11#de57fc23 Versionshistorie & Revisions (1 transition, 8 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_PER_00355@rel:R25-11#de57fc23
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#f5dacf6e2026-09-30
  • R19-11rel:R19-11#606e44052026-10-14
  • R20-11rel:R20-11#bf89ad122026-10-14
  • R21-11rel:R21-11#bf89ad122026-10-14
  • R22-11rel:R22-11#b5d8215d2026-10-14
  • R23-11rel:R23-11#9889dc0a2026-10-14
  • R24-11rel:R24-11#de57fc232026-10-14
  • R25-11rel:R25-11#de57fc232026-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