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

사용자 가이드AI 생성

특정 오류 코드를 기반으로 지속성 모듈의 오류를 캡슐화하고 알리는 역할을 합니다.
AI 생성 미검증 모델: 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은 R25-11 릴리스의 AUTOSAR Adaptive Platform 내 지속성 기능 클러스터(모듈 per)를 위한 핵심적인 특수 예외 유형 역할을 합니다. 형식 구문에 따르면 이 클래스는 일반 기본 예외 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]. 생성자 호출 후 객체는 호출 스택을 따라 발생(throw)됩니다. 소유권과 소멸은 예외 처리를 위한 표준 C++ 규칙을 따릅니다: 객체는 가로채는 catch 블록이 종료될 때까지 런타임 시스템의 메모리 영역에 유지되며 이후 결정론적으로 소멸됩니다.

사용 경로

ara::per::PerException 사용 시 일반적인 흐름은 다음 단계로 나뉩니다:

  • 오류 감지 및 코드 생성: 지속성 모듈이 허용되지 않는 상태 또는 스토리지 오퍼레이션의 실패를 식별하고 이를 해당 ara::core::ErrorCode에 매핑합니다.
  • 인스턴스화: 이 오류 코드를 전달하여 PerException(errorCode)을 통해 예외 객체를 명시적으로 생성합니다 [SWS_PER_00355].
  • 예외 발생: 지속성 하위 시스템이 해당 함수 인터페이스에서 예외 인스턴스를 발생(throw)시킵니다.
  • 가로채기 및 평가: 호출 애플리케이션은 객체를 ara::per::PerException으로 특정하여 가로채거나 ara::core::Exception 또는 std::exception로 다형적으로 가로챕니다. 해석: 애플리케이션은 이후 기본 클래스로부터 상속된 접근 메서드를 통해 캡슐화된 ara::core::ErrorCode을 읽어와 맞춤형 오류 복구 조치를 시작할 것으로 보입니다. 질문 Q-6e48fd125d9938d8 (열림)

오류 시나리오

ara::per::PerException은 오류를 나타내는 데 사용되므로 오류 시나리오에서는 객체 생성의 견고성과 오류 정보의 무결성이 가장 중요합니다. 필수적인 사전 조건으로 생성자는 입력 매개변수로 유효한 ara::core::ErrorCode을 요구합니다 [SWS_PER_00355]. 생성자가 noexcept로 선언되어 있으므로 오류 보고 중에 2차 예외가 발생할 가능성은 배제됩니다 [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

생성자 및 소멸자

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#e5ada43c
Content hash
e5ada43c
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