진단 클래스에서 UDS NRC 오류를 신호하고 전달하기 위한 스레드 안전 예외 역할을 합니다.
AI 생성미검증모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 6ef167bbc303출처열린 질문 (2)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문
진단 클래스에서 UDS NRC 오류를 신호하고 전달하기 위한 스레드 안전 예외 역할을 합니다.
클래스 ara::diag::DiagUdsNrcException은 AUTOSAR Adaptive Platform의 진단 클래스에 의한 UDS NRC 오류 신호 전달을 위한 표준화된 예외 역할을 합니다(AUTOSAR_AP_SWS_Diagnostics §8.12.4 “Class: DiagUdsNrcException”). 해당 오류 조건이 발생하면 ara::core::ErrorCode로 인스턴스화되어 던져지며, 오류 처리를 위해 호출 애플리케이션에 의해 포착됩니다. 중요한 제약 조건으로 [SWS_DM_00528]에 따른 생성자는 완전한 예외 안전성(noexcept) 및 스레드 안전성을 보장하여 동시성 컨텍스트에서도 신뢰할 수 있는 객체 생성을 보장합니다.
컨텍스트
클래스 ara::diag::DiagUdsNrcException은 AUTOSAR Adaptive Platform에서 모듈 diag의 진단 클래스를 위한 핵심 예외 타입을 형성합니다(AUTOSAR_AP_SWS_Diagnostics §8.12.4 “Class: DiagUdsNrcException”). 사양 [SWS_DM_00527]에 따르면 기본 예외 클래스 ara::core::Exception에서 직접 상속되는 표준화된 C++ 예외 인터페이스를 정의합니다. 주요 책임은 진단 컨텍스트의 오류 조건, 특히 UDS 프로토콜의 부정 응답 코드(Negative Response Codes, NRC)를 프로그래밍 인터페이스를 통해 형식화된 예외로 전달하는 것입니다. 이 클래스는 구체적인 오류 코드를 캡슐화하는 ara::core::ErrorCode 및 진단 요청을 수행하고 발생 가능한 오류를 포착해야 하는 호출 애플리케이션 계층과 긴밀하게 상호작용합니다([SWS_DM_00528]). 헤더 ara/diag/diag_uds_nrc_error_domain.h에 선언됨으로써 이 예외는 연관된 UDS NRC 오류 도메인과 직접 연결됩니다([SWS_DM_00528]).
ara::diag::DiagUdsNrcException 인스턴스의 수명 주기는 진단 클래스 또는 내부 오류 처리 루틴에 의한 명시적 인스턴스화로 시작됩니다. [SWS_DM_00528]에 따르면 클래스에는 기본 오류 코드를 매개변수 err으로 수신하는 생성자 explicit DiagUdsNrcException(ara::core::ErrorCode err) noexcept;가 있습니다. 이 생성자는 명시적으로 예외 안전(exception safe) 및 비-발생(noexcept)으로 정의되어 있어([SWS_DM_00528]), 오류 경로에서 객체 생성 시 2차 예외가 발생할 수 없도록 보장합니다. 또한 [SWS_DM_00528]에 따라 생성은 스레드 안전(thread-safe)으로 분류됩니다. 생성 후 예외 인스턴스는 일반적으로 C++ 런타임 시스템을 통해 값으로 던져집니다. 객체의 소유권은 스택 해제 동안 런타임 환경에 유지되며, 해당 catch 블록에서 예외가 바인딩되고 평가될 때까지 지속됩니다. 예외 처리 블록을 벗어나면 정기적인 소멸을 통해 객체의 수명 주기가 종료됩니다.
사용 경로
일반적인 사용 경로에는 UDS NRC 오류 감지, 예외 생성 및 애플리케이션에 의한 후속 평가가 포함됩니다.
애플리케이션 컴포넌트가 ara::diag 클래스의 진단 함수 또는 서비스 인터페이스를 호출합니다.
진단 클래스는 처리 중에 요청을 성공적으로 처리할 수 없고 UDS NRC가 존재함을 감지한 후 해당하는 ara::core::ErrorCode를 생성합니다.
이 오류 코드를 전달하여 생성자를 통해 예외 ara::diag::DiagUdsNrcException이 인스턴스화됩니다([SWS_DM_00528]).
ara::diag::DiagUdsNrcException 자체가 오류 신호 전달 수단이므로 오류 시나리오는 주로 예외 생성 시의 견고성 및 동시성과 관련됩니다.
견고한 객체 생성:noexcept 및 exception safe([SWS_DM_00528])로 지정됨으로써 생성 중에 2차 예외가 발생할 가능성이 배제됩니다. 이를 통해 중요한 오류 처리 경로에서 std::terminate와 같은 치명적인 런타임 중단을 방지합니다.
오류 코드의 유효성: 인스턴스화를 위한 사전 조건으로 유효한 ara::core::ErrorCode가 준비되어 있어야 합니다([SWS_DM_00528]). 이는 일반적으로 ara/diag/diag_uds_nrc_error_domain.h로 정의된 오류 도메인에서 비롯됩니다.
병렬 진단 처리: 생성자가 thread-safe로 지정되어 있으므로([SWS_DM_00528]), 예외 객체 초기화 시 경쟁 상태(race condition)가 발생하지 않고 여러 스레드가 동시에 진단 예외를 생성할 수 있습니다.
이 가이드는 AUTOSAR 사양 R25-11을 기반으로 AI 시스템에 의해 생성되었습니다.
UML 클래스 다이어그램
Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.
gemini-3.8-flash-low· 2026-10-13 · 독일어 원문