Core 오류를 보고하기 위한 예외 타입으로 작동하며 구조화된 예외 처리를 위해 오류 코드를 캡슐화합니다.
AI 생성미검증모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 2b622ea04d25출처열린 질문 (2)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문
Core 오류를 보고하기 위한 예외 타입으로 작동하며 구조화된 예외 처리를 위해 오류 코드를 캡슐화합니다.
클래스 ara::core::CoreException은(는) ara::core 기능 영역의 오류 전달을 위한 핵심 예외 타입으로 사용되며 이를 위해 기본 클래스 Exception에서 파생됩니다. 인스턴스화는 오류 원인을 캡슐화하는 특정 ErrorCode을(를) 전달하여 생성자를 통해 필수적으로 수행됩니다 [SWS_CORE_05212]. 필수적인 제약 조건으로서 구현은 완전한 스레드 안전성 및 예외 안전성을 보장하며 생성 시 예외 없는 noexcept 보장을 제공합니다 [SWS_CORE_05212]. 호출자는 포함된 오류 상태를 통제된 방식으로 처리하기 위해 예외를 포착합니다.
컨텍스트
클래스 ara::core::CoreException은(는) ara::core 기능 영역 내에서 발생하는 오류에 대한 핵심 예외 타입으로 사용됩니다. 클래스 선언에 따라 기본 클래스 Exception에서 공개적으로 파생됩니다. CoreException의 주요 임무는 ErrorCode 객체로 설명되는 발생한 오류 이벤트를 C++ 예외 처리 모델로 전달하는 것입니다. 플랫폼 컨텍스트에서 이 클래스는 오류를 감지하는 인프라 컴포넌트와 이를 호출하는 애플리케이션 또는 플랫폼 코드 사이의 가교 역할을 합니다. ara::core의 연산이 실패하고 인터페이스가 예외를 규정하는 경우 CoreException이(가) 인스턴스화되어 신호로 전달됩니다. 이때 생성자는 [SWS_CORE_05212]에 따라 발생한 오류의 기술적 원인과 도메인을 캡슐화하는 ErrorCode 타입의 구체적 객체를 전달받습니다. 클래스 계층 구조에 포함됨으로써 상위 아키텍처 계층은 오류를 CoreException(으)로 구체적으로 포착하거나 기본 클래스 Exception을(를) 통해 일반화하여 처리할 수 있습니다.
컨텍스트 다이어그램: ErrorCode 및 기본 클래스 Exception에 대한 CoreException의 관계. 출처: [SWS_CORE_05212]
수명 주기
CoreException 인스턴스의 수명 주기는 오류 감지 컨텍스트에서 시작됩니다. 생성은 [SWS_CORE_05212]에 따라 생성자 explicit CoreException(ErrorCode err) noexcept을(를) 통해 수행됩니다. 키워드 explicit을(를) 통해 ErrorCode으로부터의 암시적 변환이 차단되므로 의도적인 객체 생성이 강제됩니다. 생성의 주요 특징은 noexcept[SWS_CORE_05212](으)로서의 규격입니다. 인스턴스화 자체가 추가 예외를 발생시킬 수 없으므로 중요한 시스템 상태에서도 안정적인 예외 생성이 보장됩니다. 또한 예외 안전성은 완벽히 안전한 것(exception safe)으로 분류되며 해당 연산은 스레드 안전한 것(thread-safe)으로 간주됩니다 [SWS_CORE_05212]. 생성 후 예외 객체는 일반적으로 throw을(를) 사용하여 전달됩니다. 스택 언와인딩(Stack Unwinding) 동안 예외는 적절한 예외 핸들러에 바인딩될 때까지 전달됩니다. 수명 주기는 포착 블록을 벗어나는 것으로 끝나며, 이후 예외 객체의 소멸이 결정론적으로 완료됩니다.
사용 경로
CoreException의 일반적인 사용 경로는 진단, throw 및 catch의 세 가지 연속적인 단계로 나뉩니다. 먼저 모듈 core의 컴포넌트가 목표 동작과의 편차를 식별하고 해당하는 ErrorCode을(를) 인스턴스화합니다. 그 후 생성자 CoreException(err)을(를) 호출하여 예외를 생성합니다 [SWS_CORE_05212]. 그 직후 실행 컨텍스트로 객체를 throw하는 작업이 수행됩니다. 사용자 수준에서 호출은 보호된 블록 내에서 실행됩니다. 예외 상황이 발생하면 catch 블록이 인스턴스를 포착하며, 일반적으로 CoreException에 대한 상수 참조로 또는 기본 클래스 Exception을(를) 통해 다형적으로 포착합니다. 핸들러 내에서 오류를 분석, 로깅 또는 해결할 수 있습니다. 헤더 파일 #include "ara/core/core_error_domain.h"이(가) [SWS_CORE_05212]에 따라 지정되어 있으므로 클래스 선언은 애플리케이션 모듈에 일관되게 제공됩니다.
오류 시나리오
오류 시나리오 영역에서 CoreException 자체는 신호 전달체 역할을 하며 자체 생성 중에는 2차 오류를 발생시키지 않습니다. 생성자가 noexcept(으)로 선언되어 있으므로 [SWS_CORE_05212] 생성 실패 시나리오는 배제됩니다. 사양은 엄격한 예외 안전성 및 스레드 안전성을 보장하므로 [SWS_CORE_05212] 생성 시 동시 접근도 안전하게 유지됩니다. 중대한 오류 시나리오는 던져진 CoreException이(가) 상위 스코프 어디에서도 포착되지 않을 때 시스템 수준에서 발생하며, 이는 표준 C++에서 std::terminate 호출로 이어질 것으로 보입니다. 질문 Q-492683ca01bebc7d (열림) 따라서 개발자는 잠재적으로 throw를 발생시키는 ara::core 함수의 호출이 적절한 예외 처리 블록 내에 포함되도록 해야 합니다. 또 다른 잠재적 시나리오는 컴포넌트 경계를 넘어 전달하는 경우와 관련되며, 적절한 오류 해결 조치를 시작하기 위해 포함된 ErrorCode을(를) 올바르게 해석해야 합니다.
이 가이드는 AUTOSAR R25-11을 기반으로 AI 큐레이션 어시스턴트에 의해 생성되었습니다.
UML 클래스 다이어그램
Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.
gemini-3.8-flash-low· 2026-10-13 · 독일어 원문