Encapsulation of an ErrorDomain. An ErrorDomain is the controlling entity for ErrorCode’s error code values, and defines the mapping of such error code values to textual representations. This type constitutes a base class for ErrorDomain implementations. This class is a literal type, and subclasses are strongly advised to be literal types as well.
त्रुटि कोड को नियंत्रित करने के लिए एक बेस क्लास के रूप में कार्य करता है और डोमेन-विशिष्ट त्रुटि मानों को टेक्स्ट संदेशों पर मैप करता है।
एआई-जनितअसत्यापितमॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: d0712f7c0a23उद्गमखुले प्रश्न (2)
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल
त्रुटि कोड को नियंत्रित करने के लिए एक बेस क्लास के रूप में कार्य करता है और डोमेन-विशिष्ट त्रुटि मानों को टेक्स्ट संदेशों पर मैप करता है।
वर्ग ara::core::ErrorDomain त्रुटि मानों को नियंत्रित करने के लिए एक अमूर्त बेस क्लास के रूप में कार्य करता है और डोमेन-विशिष्ट कोड को उनके पाठ्य निरूपण पर मैप करता है [SWS_CORE_00153]। उपवर्ग (subclasses) सिस्टम-व्यापी अद्वितीय पहचान संख्या को समाहित करते हैं और अपरिवर्तनीय त्रुटि टेक्स्ट में अनुवाद के साथ-साथ प्रकार-विशिष्ट अपवाद हैंडलिंग को परिभाषित करते हैं। कंपाइल समय पर Literal Type के रूप में उपयोग को सक्षम करने के लिए, बेस क्लास में एक गैर-वर्चुअल, संरक्षित डिस्ट्रक्टर [SWS_CORE_00136] होता है। कॉपी और मूव ऑपरेशन्स पूरी तरह से प्रतिबंधित हैं, ताकि इंस्टेंस अपरिवर्तनीय पहचान के रूप में कार्य करें।
संदर्भ
वर्ग ara::core::ErrorDomain AUTOSAR Adaptive Platform में संरचित त्रुटि प्रबंधन के लिए साझा आधार बनाता है। यह ठोस त्रुटि डोमेन के लिए एक अमूर्त बेस क्लास के रूप में कार्य करता है और त्रुटि मानों के लिए केंद्रीय नियंत्रण जिम्मेदारी संभालता है, जिन्हें ara::core::ErrorCode में समाहित किया जाता है। प्रत्येक डोमेन अपना स्वयं का नेमस्पेस बनाता है और Message() ([SWS_CORE_00153]) के माध्यम से CodeType ([SWS_CORE_00122]) प्रकार के डोमेन-विशिष्ट त्रुटि मानों को अर्थपूर्ण टेक्स्ट निरूपण पर मैप करने को परिभाषित करता है। इसके अतिरिक्त, यह क्लास सिस्टम-व्यापी अद्वितीय डोमेन पहचानकर्ताओं के लिए प्रकार उपनाम IdType ([SWS_CORE_00121]) और निर्माता-विशिष्ट अतिरिक्त डेटा के लिए SupportDataType ([SWS_CORE_00123]) प्रदान करता है।
संपूर्ण सिस्टम में, ara::core::ErrorDomain तीन प्रमुख भागीदारों के साथ परस्पर क्रिया करता है:
उपवर्ग: विशिष्ट त्रुटि डोमेन ara::core::ErrorDomain से इनहेरिट होते हैं और डोमेन नामों, त्रुटि संदेशों और अपवाद हैंडलिंग के लिए शुद्ध वर्चुअल सदस्य फ़ंक्शन लागू करते हैं।
ara::core::ErrorCode: एक ठोस त्रुटि मान का प्रतिनिधित्व करता है और विवरणात्मक टेक्स्ट के निर्धारण को निर्दिष्ट त्रुटि डोमेन को सौंपता है।
क्लाइंट / अनुप्रयोग कोड: त्रुटि कोड के माध्यम से या सीधे डोमेन पर स्थिति जानकारी की क्वेरी करता है ([SWS_CORE_00152]) या ट्रिगर किए गए C++ अपवाद प्राप्त करता है ([SWS_CORE_00154])।
ara::core::ErrorDomain का इंस्टेंटिएशन संरक्षित है: कन्स्ट्रक्टर की दृश्यता protected है और यह IdType ([SWS_CORE_00135]) प्रकार के सिस्टम-व्यापी अद्वितीय डोमेन पहचानकर्ता की अपेक्षा करता है। चूँकि कन्स्ट्रक्टर को constexpr और noexcept के रूप में घोषित किया गया है, बेस क्लास कंपाइल समय पर Literal Type के रूप में निर्माण का समर्थन करता है। उपवर्गों को भी Literal Type के रूप में इस विशेषता को सुनिश्चित करने की स्पष्ट अनुशंसा की जाती है।
डोमेन इंस्टेंस का कोई भी दोहराव या स्थानांतरण निषिद्ध है:
डिस्ट्रक्टर को protected के रूप में घोषित किया गया है और डिफ़ॉल्ट कार्यान्वयन ([SWS_CORE_00136]) के रूप में परिभाषित किया गया है। इसे जानबूझकर सामान्य (trivial) और गैर-वर्चुअल रखा गया है ताकि वर्ग एक Literal Type बना रह सके। यद्यपि ara::core::ErrorDomain शुद्ध वर्चुअल इंटरफेस प्रदान करता है, बेस क्लास पॉइंटर्स के माध्यम से बहुरूपी विनाश (polymorphic destruction) की आवश्यकता नहीं होती है ([SWS_CORE_00136])। व्यवहार में ठोस डोमेन इंस्टेंस को दीर्घकालिक या स्थिर वस्तुओं के रूप में प्रबंधित किए जाने की संभावना है (व्याख्या)। प्रश्न Q-a874dd64f6320d21 (खुला)
स्वामित्व के संबंध में, नामों ([SWS_CORE_00152]) और त्रुटि टेक्स्ट ([SWS_CORE_00153]) के सभी पॉइंटर्स डोमेन क्लास के स्वामित्व में रहते हैं और क्लाइंट द्वारा मुक्त नहीं किए जाने चाहिए। सभी पढ़ने और तुलना करने के संचालन थ्रेड-सुरक्षित और अपवाद-सुरक्षित हैं ([SWS_CORE_00135], [SWS_CORE_00151])।
उपयोग पथ
ara::core::ErrorDomain के दो इंस्टेंस बिल्कुल तभी समान माने जाते हैं, जब Id() ([SWS_CORE_00151]) के माध्यम से निर्धारित उनके डोमेन पहचानकर्ता मेल खाते हैं ([SWS_CORE_00137], [SWS_CORE_00138])। त्रुटि समाधान और अपवाद हैंडलिंग का विशिष्ट प्रवाह निम्नलिखित चरणों में विभाजित है:
डोमेन पहचान: क्लाइंट या त्रुटि ऑब्जेक्ट Name() ([SWS_CORE_00152]) के माध्यम से डोमेन नाम को नल-टर्मिनेटेड स्ट्रिंग के रूप में निर्धारित करता है।
संदेश समाधान: संख्यात्मक त्रुटि मान Message(errorCode) के माध्यम से डोमेन को पास किया जाता है ([SWS_CORE_00153])। डोमेन एक पॉइंटर-आधारित, नल-टर्मिनेटेड त्रुटि टेक्स्ट लौटाता है जो कभी भी nullptr नहीं होता है।
अपवाद हैंडलिंग: यदि किसी त्रुटि कोड को अपवाद में परिवर्तित किया जाना है, तो क्लाइंट ThrowAsException(errorCode) को कॉल करता है ([SWS_CORE_00154])। डोमेन फिर ara::core::Exception का एक उपयुक्त इंस्टेंस थ्रो करता है, जो पास किए गए त्रुटि कोड को समाहित करता है।
ara::core::ErrorDomain का उपयोग करते समय, निम्नलिखित त्रुटि परिदृश्यों और इंटरफ़ेस आवश्यकताओं पर विचार किया जाना चाहिए:
गलत डोमेन संबद्धता: यदि मेथड Message() को एक ऐसा errorCode पास किया जाता है जो इस विशिष्ट ErrorDomain से संबंधित नहीं है, तो यह निर्दिष्ट उल्लंघन WrongDomainOfAn-ErrorCodeViolation का प्रतिनिधित्व करता है ([SWS_CORE_00153])। कॉल करने वालों को यह सुनिश्चित करना होगा कि त्रुटि कोड डोमेन इंस्टेंस से मेल खाता हो।
अक्षम C++ अपवाद: मेथड ThrowAsException() अपवाद-सुरक्षित नहीं है (not exception safe) और एक अपवाद थ्रो करता है ([SWS_CORE_00154])। यदि कंपाइलर टूलचेन में C++ अपवाद अक्षम हैं, तो इस फ़ंक्शन को ओवरलोड समाधान में भाग लेने की अनुमति नहीं है ([SWS_CORE_00154])।
नल पॉइंटर अपवर्जन: न तो Name() और न ही Message() कभी भी nullptr लौटा सकते हैं ([SWS_CORE_00152], [SWS_CORE_00153])। एक उपवर्ग कार्यान्वयन जो nullptr लौटाता है, इंटरफ़ेस विनिर्देश को तोड़ता है।
यह गाइड AUTOSAR विनिर्देश R25-11 के आधार पर एक AI-क्यूरेशन सहायक द्वारा तैयार की गई थी।
Compare for equality with another ara::core::ErrorDomain instance. Two ara::core::ErrorDomain instances compare equal when their identifiers (returned by Id()) are equal
एआई-जनितअसत्यापितमॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: 59f6b727c495उद्गम
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल
हेडर फ़ाइल ara/core/error_domain.h से क्लास ara::core::ErrorDomain का सदस्य फ़ंक्शन Id() संबंधित त्रुटि डोमेन के अद्वितीय पहचानकर्ता को सिंक्रोनस रूप से वापस करता है ([SWS_CORE_00151])। कॉल किसी भी पासिंग पैरामीटर की अपेक्षा नहीं करता है और प्रकार IdType के मान के रूप में डोमेन पहचानकर्ता लौटाता है, जिससे समग्र प्रणाली में विभिन्न त्रुटि डोमेन के बीच एक अद्वितीय अंतर सुनिश्चित होता है।
त्रुटि प्रबंधन के लिए, यह प्रासंगिक है कि फ़ंक्शन को noexcept के रूप में घोषित किया गया है और exception safe के रूप में वर्गीकृत किया गया है ([SWS_CORE_00151])। इसलिए यह कभी भी अपवाद नहीं फेंकता है और न तो त्रुटि कोड और न ही विशेष मामलों की रिपोर्ट करता है। एक constexpr मेथड के रूप में इसकी विशेषता के कारण, पहचानकर्ता को आवश्यकता पड़ने पर संकलन समय पर ही मूल्यांकित किया जा सकता है और स्थिर अभिव्यक्तियों में उपयोग किया जा सकता है।
समवर्तीता और कॉल शर्तों के संबंध में, Id() को thread-safe के रूप में निर्दिष्ट किया गया है ([SWS_CORE_00151])। कॉल स्थितिहीन और संशोधित करने वाले दुष्प्रभावों से मुक्त है, ताकि कितने भी थ्रेड एक साथ और बाहरी लॉकिंग तंत्र के बिना समान इंस्टेंस तक पहुंच सकें।
डोमेन आर्किटेक्चर के भीतर परस्पर क्रिया में, पहचानकर्ता प्राथमिक तुलना मानदंड बनाता है: ara::core::ErrorDomain के दो इंस्टेंस विनिर्देश के अनुसार ठीक उसी समय समान माने जाते हैं जब Id() द्वारा प्रदान किए गए उनके पहचानकर्ता मेल खाते हैं, जिसे सीधे समानता ऑपरेटर operator== द्वारा कार्यान्वित किया जाता है ([SWS_CORE_00137])।
यह उपयोग संबंधी निर्देश AI द्वारा तैयार किया गया है और AUTOSAR Adaptive R25-11 पर आधारित है।
Return a textual representation of the given errorCode.
The returned pointer remains owned by the ara::core::ErrorDomain sub-class and shall not be freed by clients.
एआई-जनितअसत्यापितमॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: 9827a3eb35a8उद्गमखुले प्रश्न (1)
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल
हेडर ara/core/error_domain.h से बेस क्लास ara::core::ErrorDomain का विशुद्ध रूप से वर्चुअल फ़ंक्शन Message पास किए गए डोमेन-विशिष्ट त्रुटि कोड errorCode[SWS_CORE_00153] के लिए एक शाब्दिक प्रतिनिधित्व को तुल्यकालिक रूप से पुनः प्राप्त करने का काम करता है। यह एक नल-टर्मिनेटेड स्ट्रिंग (const char *) के लिए एक पॉइंटर लौटाता है, जो गारंटीकृत रूप से कभी nullptr नहीं होता है। संदर्भित मेमोरी ara::core::ErrorDomain के संबंधित सबक्लास के स्वामित्व में रहती है और कॉलिंग क्लाइंट द्वारा इसे किसी भी स्थिति में मुक्त नहीं किया जाना चाहिए [SWS_CORE_00153]।
कॉनक्रेन्सी और मजबूती के संबंध में, विधि को noexcept के रूप में घोषित किया गया है, इसे अपवाद-सुरक्षित (exception safe) माना जाता है और यह पूरी तरह से थ्रेड-सुरक्षित (thread-safe) डिज़ाइन की गई है [SWS_CORE_00153]। संभावित त्रुटि स्थितियों के संबंध में, यह निर्दिष्ट किया गया है कि एक errorCode, जो ara::core::ErrorDomain के संबंधित इंस्टेंस से उत्पन्न नहीं होता है, प्रकार WrongDomainOfAnErrorCodeViolation के उल्लंघन का कारण बनता है [SWS_CORE_00153]।
AUTOSAR त्रुटि प्रबंधन मॉडल के साथ परस्पर क्रिया में, ara::core::FutureErrorDomain[SWS_CORE_00443] और ara::core::CoreErrorDomain[SWS_CORE_05243] जैसे ठोस त्रुटि डोमेन डोमेन-विशिष्ट त्रुटि कोड को ठोस संदेश टेक्स्ट में बदलने के लिए इस विधि को ओवरराइड करते हैं। व्याख्या: ara::core::ErrorCode::Message()[SWS_CORE_00518] के साथ परस्पर क्रिया, जो StringView के रूप में एक शाब्दिक प्रतिनिधित्व लौटाती है, संभवतः इस तथ्य पर आधारित है कि ErrorCode अनुवाद को संबद्ध त्रुटि डोमेन की विधि Message पर अग्रेषित करता है। प्रश्न Q-f9007fdf5234b6a4 (खुला)
यह उपयोग नोट विनिर्देश आवश्यकताओं के आधार पर स्वचालित रूप से उत्पन्न किया गया था।
This function will determine the appropriate exception type for the given ErrorCode according to [SWS_CORE_10953] and throw it. The thrown exception will contain the given ErrorCode.
एआई-जनितअसत्यापितमॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: f434ab45abb9उद्गम
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल
क्लास ara::core::ErrorDomain का शुद्ध वर्चुअल मेथड ThrowAsException, पास किए गए त्रुटि कोड को प्रकार ara::core::Exception के अपवाद के रूप में सिंक्रोनस रूप से ट्रिगर करने के लिए कार्य करता है [SWS_CORE_00154]। फ़ंक्शन इनपुट पैरामीटर के रूप में const ErrorCode &errorCode का संदर्भ लेता है और इसका कोई रिटर्न मान नहीं होता है, क्योंकि अपवाद फेंकने से निष्पादन समाप्त हो जाता है [SWS_CORE_00154]।
त्रुटि और अपवाद व्यवहार के संबंध में, संबंधित डोमेन [SWS_CORE_10953] के अनुसार पास किए गए त्रुटि कोड के लिए उपयुक्त अपवाद प्रकार निर्धारित करता है और उसे थ्रो करता है [SWS_CORE_00154]। ट्रिगर किए गए अपवाद में पास किया गया ErrorCode शामिल होता है [SWS_CORE_00154]। फ़ंक्शन को अपवाद-सुरक्षित नहीं (not exception safe) के रूप में वर्गीकृत किया गया है [SWS_CORE_00154]।
समवर्तीता और कंपाइलर संदर्भ के लिए निम्नलिखित आवश्यकताएं लागू होती हैं:
थ्रेड-सुरक्षा:ThrowAsException की कॉल थ्रेड-सुरक्षित (thread-safe) के रूप में निर्दिष्ट है [SWS_CORE_00154]।
निष्क्रिय C++ अपवादों के साथ प्रतिबंध: यदि कंपाइलर टूलचेन में C++ अपवाद अक्षम हैं, तो [SWS_CORE_10304] के अनुसार फ़ंक्शन को ओवरलोड रिज़ॉल्यूशन में भाग लेने की अनुमति नहीं है [SWS_CORE_00154]।
अन्य घटकों के साथ परस्पर क्रिया में, यह फ़ंक्शन त्रुटि ऑब्जेक्ट्स के माध्यम से अपवाद ट्रिगर करने का आधार बनता है: इस प्रकार ara::core::ErrorCode::ThrowAsException थ्रो करने का कार्य this->Domain().ThrowAsException(*this) के माध्यम से संबंधित डोमेन को सौंपता है [SWS_CORE_00519]। कंक्रीट कार्यान्वयन इस इंटरफ़ेस को ओवरराइड करते हैं ताकि CoreErrorDomain में CoreException[SWS_CORE_05244] या FutureErrorDomain में FutureException[SWS_CORE_00444] जैसे विशिष्ट अपवाद थ्रो किए जा सकें।
यह पाठ एक AI द्वारा तैयार किया गया था और AUTOSAR Adaptive R25-11 विनिर्देश पर आधारित है।
Any exception of the type as defined in [SWS_CORE_10953] containing the given ErrorCode
Hinweise: This function shall not participate in overload resolution when C++ exceptions are disabled in the compiler toolchain. As per [SWS_CORE_10304].
Request a governed re-review of this record. The record is not changed immediately.
This dtor is non-virtual (and trivial) so that this class can be a literal type. While this class has virtual functions, no polymorphic destruction is needed.
gemini-3.8-flash-low· 2026-10-13 · जर्मन मूल