치명적인 기능 오류를 C++ 예외로서 전달하고 처리하기 위해 State Management의 오류 코드를 캡슐화합니다.
AI 생성미검증모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 72647117def3출처열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문
치명적인 기능 오류를 C++ 예외로서 전달하고 처리하기 위해 State Management의 오류 코드를 캡슐화합니다.
클래스 ara::sm::SmException은(는) State Management의 연산 시 발생하는 예외 상황을 전달하는 데 사용됩니다 [SWS_SM_81242]. 이는 ara::core::Exception에서 파생되며, 발생한 오류 원인의 정확한 식별을 위해 특정 ara::core::ErrorCode을(를) 캡슐화합니다. 이 클래스의 생성은 스레드 안전하고 예외 안전한 것으로 명시된 명시적 생성자를 통해 이루어집니다 [SWS_SM_81243]. 호출하는 애플리케이션은 포함된 오류 코드를 분석하고 적절한 복구 조치를 시작하기 위해 객체를 구조적으로 포착(catch)합니다.
아키텍처 관점에서 이 클래스는 세 가지 핵심 역할을 연결합니다: 상태 연산 실패 시 트리거하는 인스턴스로서의 State Management, 처리자(handler)로서 호출하는 Adaptive 애플리케이션, 그리고 오류 처리를 위한 공통 인터페이스를 제공하는 ara::core의 기본 인프라입니다. 오류 상태의 전달체로서, 모듈 sm의 오류 상황을 C++ 예외 메커니즘을 통해 상위 제어 인스턴스로 동기적으로 전달하는 역할을 합니다.
수명 주기
ara::sm::SmException의 인스턴스화는 생성자 SmException(ara::core::ErrorCode errorCode)[SWS_SM_81243]을(를) 통해 명시적으로 수행됩니다. 이 생성자는 noexcept(으)로 선언되어 있으며 예외 안전성(exception safe)과 스레드 안전성(thread-safe) 특성을 모두 가집니다 AUTOSAR_AP_SWS_StateManagement §8.1.4.1.1.1 “SmException”. 이를 통해 동시 실행 컨텍스트에서 생성되더라도 예외 객체 생성 자체가 실패하거나 추가 예외를 발생시키지 않음이 보장됩니다.
생성 후 인스턴스는 일반적으로 값으로(by value) 던져지며, 호출 컨텍스트에서 상수 객체에 대한 참조(const ara::sm::SmException& 또는 다형적으로 const ara::core::Exception&)로 포착됩니다. 사양에 특정 소멸자나 수동 정리 루틴이 명시되어 있지 않으므로, 해석상 예외 객체의 소멸은 담당 처리 블록을 벗어나는 즉시 표준 C++ 시맨틱과 기본 클래스 ara::core::Exception의 메커니즘을 완전히 따를 것으로 보입니다. 질문 Q-85b1fd2f6082db8e (열림)
사용 경로
일반적인 흐름은 애플리케이션 또는 플랫폼 컴포넌트가 State Management에 상태 제어 요청을 전달하는 것으로 시작됩니다. 요청된 상태 변경을 내부적으로 완료할 수 없거나 중대한 예외 오류가 있는 경우, State Management는 해당 ara::core::ErrorCode[SWS_SM_81243]을(를) 지정하여 ara::sm::SmException의 인스턴스를 인스턴스화합니다.
호출 컴포넌트는 발생한 예외를 해당 catch 블록에서 포착합니다. 기본 클래스 ara::core::Exception에서 상속된 메서드를 통해 애플리케이션은 캡슐화된 ara::core::ErrorCode을(를) 검사하여 오류 원인을 의미론적으로 매핑하고, 오류 수정 또는 시스템 상태 복구를 위한 맞춤형 조치를 시작할 수 있습니다.
오류 시나리오
클래스 ara::sm::SmException 자체는 오류가 발생하기 쉬운 연산 요소를 나타내지 않으며, State Management 내에서 예외 상황을 위한 기본 전달체 객체입니다 [SWS_SM_81242]. 생성을 위한 필수 전제 조건은 생성자 호출 시 초기화된 ara::core::ErrorCode 객체를 제공하는 것입니다 [SWS_SM_81243].
던져진 ara::sm::SmException이(가) 호출 스택에서 일치하는 핸들러에 의해 포착되지 않으면, C++ 표준 규칙에 따라 std::terminate이(가) 호출되어 해당 프로세스가 통제되지 않은 채 중단됩니다. ara::core::Result을(를) 선호하여 예외를 배제하도록 규정하는 구현에서는 throw가 방지되지만, 예외 경로가 사용 가능한 경우 캡슐화를 통해 원래 오류 코드가 왜곡 없이 오류 진단으로 전달되도록 보장합니다.
이 클래스 가이드는 AUTOSAR Adaptive R25-11 사양을 기반으로 합니다. 모든 정보는 참조된 사양 항목을 바탕으로 합니다.
UML 클래스 다이어그램
Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.
gemini-3.8-flash-low· 2026-10-13 · 독일어 원문