Encapsulation of an error code. An ErrorCode contains a raw error code value and an Error Domain. The raw error code value is specific to this ErrorDomain.
मूल्यांकन या C++ अपवादों में रूपांतरण के लिए डोमेन-विशिष्ट त्रुटि कोड और अतिरिक्त डेटा को समाहित करता है।
एआई-जनितअसत्यापितमॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: 747258139aa5उद्गमखुले प्रश्न (1)
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल
मूल्यांकन या C++ अपवादों में रूपांतरण के लिए डोमेन-विशिष्ट त्रुटि कोड और अतिरिक्त डेटा को समाहित करता है।
वर्ग ara::core::ErrorCode एक डोमेन-विशिष्ट रॉ त्रुटि मान को उसके संबद्ध त्रुटि डोमेन और वैकल्पिक संदर्भ डेटा [SWS_CORE_00513] के साथ समाहित करता है। यह त्रुटि कोड और विवरण पाठ को अपवाद-सुरक्षित रूप से पढ़ने के साथ-साथ ThrowAsException()[SWS_CORE_00518], [SWS_CORE_00519] के माध्यम से आवश्यकतानुसार प्रकार-विशिष्ट C++ अपवाद के रूप में अग्रेषण को सक्षम बनाता है। यदि C++ अपवाद टूलचेन-साइड पर अक्षम हैं, तो अपवाद इंटरफ़ेस स्वचालित रूप से ओवरलोड समाधान से हटा दिया जाता है [SWS_CORE_00519]।
संदर्भ
वर्ग ara::core::ErrorCode AUTOSAR Adaptive Platform में त्रुटि जानकारी के लिए केंद्रीय इनकैप्सुलेशन के रूप में कार्य करता है। एक त्रुटि कोड हमेशा ErrorDomain::CodeType प्रकार के डोमेन-विशिष्ट रॉ त्रुटि मान को एक संबद्ध त्रुटि डोमेन ara::core::ErrorDomain[SWS_CORE_00513] के साथ बंडल करता है। त्रुटि डोमेन उस सिमेंटिक संदर्भ को परिभाषित करता है जिसमें रॉ मान की व्याख्या की जानी है, और संख्यात्मक कोड तथा कार्यात्मक अर्थ के बीच संबंध स्थापित करता है [SWS_CORE_00515]। इसके अतिरिक्त, एक ErrorCode गतिशील मेमोरी आवंटन के बिना त्रुटि उत्पत्ति के लिए विस्तारित संदर्भ प्रदान करने हेतु ErrorDomain::SupportDataType प्रकार का निर्माता-विशिष्ट अतिरिक्त डेटा संग्रहीत कर सकता है [SWS_CORE_00516]।
जीवनचक्र
एक ErrorCode का इंस्टेंसिएशन या तो एक गणना योग्य प्रकार के माध्यम से या रॉ मान और त्रुटि डोमेन के स्पष्ट विनिर्देश के माध्यम से होता है। प्रकार-सुरक्षित गणना मानों के लिए, एक कंस्ट्रक्टर टेम्प्लेट मौजूद है जो SFINAE के माध्यम से ओवरलोड समाधान में केवल तभी भाग लेता है जब तर्क एक C++ एनम प्रकार हो [SWS_CORE_00512]। वैकल्पिक रूप से, प्रत्यक्ष कंस्ट्रक्टर एक संख्यात्मक रॉ मान, जिम्मेदार ErrorDomain का संदर्भ और वैकल्पिक अतिरिक्त डेटा स्वीकार करता है [SWS_CORE_00513]।
दोनों कंस्ट्रक्टरों को constexpr और noexcept के रूप में घोषित किया गया है। यह निर्माण के समय पूर्ण अपवाद सुरक्षा की गारंटी देता है और संकलन समय पर निर्माण की अनुमति देता है [SWS_CORE_00512], [SWS_CORE_00513]। व्याख्या: चूंकि ErrorCode केवल प्राथमिक डेटा और दीर्घकालिक डोमेन के संदर्भ का प्रबंधन करता है, इसलिए वर्ग एक हल्के मान प्रकार के रूप में व्यवहार करता है जिसे स्वतंत्र रूप से कॉपी किया जा सकता है और थ्रेड्स के पार पढ़ा जा सकता है। प्रश्न Q-8ac788b51fb75a1c (खुला) सभी प्रेक्षण संचालन थ्रेड-सुरक्षित और अपवाद-सुरक्षित निर्दिष्ट किए गए हैं [SWS_CORE_00514], [SWS_CORE_00515]।
उपयोग पथ
एक सामान्य उपयोग प्रवाह में त्रुटि स्थिति का पता चलने पर निर्माण, कॉलर द्वारा प्रासंगिक मेटाडेटा का निरीक्षण और यदि आवश्यक हो, तो अपवाद हैंडलर को अग्रेषण शामिल है:
निर्माण: त्रुटि को एक डोमेन-विशिष्ट गणना मान और वैकल्पिक संदर्भ डेटा [SWS_CORE_00512] के माध्यम से निर्मित किया जाता है।
पहचान: कॉलर Value()[SWS_CORE_00514] का उपयोग करके संख्यात्मक रॉ मान और Domain()[SWS_CORE_00515] के माध्यम से संबद्ध त्रुटि डोमेन की क्वेरी करता है।
निदान: पूरक निर्माता-विशिष्ट डेटा को SupportData()[SWS_CORE_00516] के माध्यम से पढ़ा जाता है, जबकि Message()StringView के रूप में मानव-पठनीय विवरण प्रदान करता है [SWS_CORE_00518]।
अपवाद ट्रिगर करना: यदि त्रुटि को अपवाद-आधारित नियंत्रण संरचना में प्रसारित किया जाना है, तो कॉलर ThrowAsException() के माध्यम से संबंधित अपवाद को ट्रिगर करता है [SWS_CORE_00519]।
वर्ग ara::core::ErrorCode अपवाद-मुक्त और अपवाद-आधारित त्रुटि प्रबंधन के बीच एक सेतु के रूप में कार्य करता है। विधियों Value(), Domain(), SupportData() और Message() में noexcept का आश्वासन है और संसाधनों की कमी होने पर भी परिणामी त्रुटियों के जोखिम के बिना इन्हें कॉल किया जा सकता है [SWS_CORE_00514], [SWS_CORE_00515], [SWS_CORE_00516], [SWS_CORE_00518]।
विधि ThrowAsException() एक स्वतंत्र त्रुटि परिदृश्य का प्रतिनिधित्व करती है, जिसे स्पष्ट रूप से noexcept(false) और not exception safe घोषित किया गया है [SWS_CORE_00519]। इसका व्यवहार this->Domain().ThrowAsException(*this) के कॉल के अनुरूप है; यह लिंक किए गए ErrorDomain के माध्यम से पर्याप्त अपवाद प्रकार निर्धारित करती है और एक अपवाद फेंकती है जो वर्तमान ErrorCode इंस्टेंस को समाहित करता है [SWS_CORE_00519]। एक महत्वपूर्ण सीमा शर्त यह है कि ThrowAsException() ओवरलोड समाधान में भाग नहीं लेता है यदि कंपाइलर टूलचेन में C++ अपवाद अक्षम हैं [SWS_CORE_00519]।
AUTOSAR Adaptive Platform R25-11 पर आधारित autodocs-AI द्वारा जनरेट किया गया।
Construct a new ErrorCode instance with parameters
एआई-जनितअसत्यापितमॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: aa921d126307उद्गमखुले प्रश्न (1)
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल
टेम्पलेट कंस्ट्रक्टर ErrorCode हेडर फ़ाइल ara/core/error_code.h[SWS_CORE_00512] से क्लास ara::core::ErrorCode के भीतर एक त्रुटि विवरण को तुल्यकालिक रूप से त्वरित करता है। यह एक गणना प्रकार EnumT का एक डोमेन-विशिष्ट त्रुटि कोड मान e और प्रकार ErrorDomain::SupportDataType का वैकल्पिक विक्रेता-विशिष्ट अतिरिक्त डेटा data लेता है, जो डिफ़ॉल्ट रूप से खाली आरंभ किया जाता है [SWS_CORE_00512]। एक प्रमुख प्रतिबंध के रूप में, कंस्ट्रक्टर SFINAE के माध्यम से केवल तभी ओवरलोड रिज़ॉल्यूशन में भाग लेता है जब EnumT वास्तव में एक गणना प्रकार हो [SWS_CORE_00512]। स्पष्ट डोमेन पासिंग [SWS_CORE_00513] के साथ वैकल्पिक ओवरलोड के विपरीत, उपयुक्त ErrorDomain के लिए असाइनमेंट संभवतः प्रकार EnumT के आधार पर अंतर्निहित रूप से प्राप्त किया जाना चाहिए। प्रश्न Q-83bc8268971748ff (खुला)
कॉनक्रेन्सी और त्रुटि सुरक्षा के संबंध में, कंस्ट्रक्टर को थ्रेड-सुरक्षित (thread-safe) के साथ-साथ पूरी तरह से अपवाद-सुरक्षित (exception safe) के रूप में निर्दिष्ट किया गया है और noexcept[SWS_CORE_00512] के रूप में घोषित किया गया है। constexpr योग्यता के माध्यम से, इंस्टेंसिएशन पहले से ही स्थिर अभिव्यक्तियों में कंपाइल-टाइम पर हो सकता है [SWS_CORE_00512]। निर्माण के लिए विशिष्ट DET या DEM त्रुटि संदेश परिभाषित नहीं हैं। यदि प्रतिनिधित्व की गई त्रुटि को आगे के नियंत्रण प्रवाह में एक अपवाद के रूप में संकेत दिया जाना है, तो बनाया गया इंस्टेंस विधि ThrowAsException() प्रदान करता है, जो उपयुक्त अपवाद प्रकार निर्धारित करता है और ट्रिगर करता है [SWS_CORE_00519]; इसके अनुरूप, त्रुटि डोमेन भी अपवाद को सीधे फेंक सकता है [SWS_CORE_00154]।
समग्र सिस्टम के साथ परस्पर क्रिया में, ऑब्जेक्ट के गुणों को विधियों Value()[SWS_CORE_00514], Domain()[SWS_CORE_00515], SupportData()[SWS_CORE_00516] और टेक्स्ट प्रतिनिधित्व Message()[SWS_CORE_00518] के माध्यम से क्वेरी किया जा सकता है। operator==[SWS_CORE_00571] और operator!=[SWS_CORE_00572] के माध्यम से मान तुलना में केवल Value() और Domain() को ध्यान में रखा जाता है, जबकि SupportData() पर विचार नहीं किया जाता है [SWS_CORE_00571]। इसके अलावा, बनाया गया ऑब्जेक्ट मानकीकृत अपवाद ऑब्जेक्ट्स जैसे ara::core::Exception[SWS_CORE_00611] (Error()[SWS_CORE_00613] के माध्यम से पठनीय), ara::core::CoreException[SWS_CORE_05212] या ara::core::FutureException[SWS_CORE_00412] में एनकैप्सुलेशन के लिए आधार के रूप में कार्य करता है।
नोट: यह उपयोग नोट एक कृत्रिम बुद्धिमत्ता (AI) द्वारा जनरेट किया गया था और पूरी तरह से रिलीज़ R25-11 के विनिर्देशों पर आधारित है।
एआई-जनितअसत्यापितमॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: f7a24bdeeeddउद्गम
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल
हेडर #include "ara/core/error_code.h" से क्लास ara::core::ErrorCode का सदस्य फ़ंक्शन SupportData() किसी त्रुटि के लिए पूरक संदर्भ डेटा लौटाता है [SWS_CORE_00516]। विधि को किसी इंस्टेंस पर तुल्यकालिक रूप से कॉल किया जाता है, इसके लिए किसी पैरामीटर की आवश्यकता नहीं होती है और यह प्रकार ErrorDomain::SupportDataType का मान लौटाती है [SWS_CORE_00516]। constexpr और noexcept के रूप में घोषणा के कारण, कॉल गारंटीकृत रूप से अपवाद-मुक्त है और इसे कंपाइल-टाइम पर पहले ही मूल्यांकित किया जा सकता है [SWS_CORE_00516]।
कॉनक्रेन्सी और निष्पादन सुरक्षा के संबंध में, विधि को थ्रेड-सुरक्षित (thread-safe) और साथ ही अपवाद-सुरक्षित (exception safe) के रूप में निर्दिष्ट किया गया है [SWS_CORE_00516]। चूंकि यह आंतरिक त्रुटि संदर्भ के लिए केवल पढ़ने की पहुंच (read-only access) है, इसलिए कोई त्रुटि स्थिति उत्पन्न नहीं होती है, जिससे यह कॉल महत्वपूर्ण और समवर्ती निष्पादन पथों के लिए भी उपयुक्त हो जाता है [SWS_CORE_00516]।
त्रुटि प्रबंधन के अन्य इंटरफेस के साथ परस्पर क्रिया में, SupportData() उस विक्रेता-विशिष्ट अतिरिक्त डेटा को पढ़ता है जो वैकल्पिक रूप से पैरामीटर data[SWS_CORE_00513] के माध्यम से ErrorCode के कंस्ट्रक्टर को पास किया गया था। operator== का उपयोग करके दो त्रुटि कोडों की तुलना करते समय, यह ध्यान दिया जाना चाहिए कि इंस्टेंस को केवल Value() और Domain() के रिटर्न के आधार पर समान माना जाता है; SupportData() के रिटर्न मान का उपयोग समानता तुलना के लिए स्पष्ट रूप से नहीं किया जाता है [SWS_CORE_00571]।
यह उपयोग संबंधी निर्देश AUTOSAR Adaptive R25-11 के विनिर्देश के आधार पर स्वचालित रूप से जनरेट किया गया था।
This function will determine the appropriate exception type for this ErrorCode and throw it. The thrown exception will contain this ErrorCode.
एआई-जनितअसत्यापितमॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: 3205bd108ecbउद्गम
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल
क्लास ara::core::ErrorCode का मेंबर फ़ंक्शन ThrowAsException किसी उत्पन्न हुई त्रुटि को सिंक्रोनस रूप से C++ अपवाद के रूप में ट्रिगर करने का कार्य करता है ([SWS_CORE_00519])। यह फ़ंक्शन कोई इनपुट पैरामीटर स्वीकार नहीं करता है और इसका कोई रिटर्न मान नहीं होता है, क्योंकि नियमित नियंत्रण प्रवाह अपवाद फेंकने से बाधित हो जाता है।
विशिष्ट अपवाद प्रकार निर्धारित करने के लिए, मेथड this->Domain().ThrowAsException(*this) व्यवहार के अनुसार निर्दिष्ट त्रुटि डोमेन को ट्रिगरिंग सौंपता है ([SWS_CORE_00519])। बेस क्लास ara::core::ErrorDomain ([SWS_CORE_00154]) के इंटरफ़ेस के माध्यम से, संबंधित डोमेन [SWS_CORE_10953] के विनिर्देश के अनुसार उपयुक्त अपवाद प्रकार निर्धारित करता है। ट्रिगर किया गया अपवाद हमेशा ट्रिगर करने वाले ErrorCode इंस्टेंस को समाहित करता है। विशिष्ट डोमेन इसे विशेष रूप से कार्यान्वित करते हैं:
ara::core::FutureErrorDomain पास किए गए त्रुटि इंस्टेंस के साथ FutureException फेंकता है ([SWS_CORE_00444])।
समवर्तीता और बाधाओं के संदर्भ में, ThrowAsException थ्रेड-सुरक्षित के रूप में निर्दिष्ट है ([SWS_CORE_00519])। अपवाद सुरक्षा को not exception safe के रूप में डिक्लेयर किया गया है, और सिग्नेचर में स्पष्ट रूप से noexcept(false) शामिल है ([SWS_CORE_00519])। टूलचेन का एक प्रमुख प्रतिबंध यह है कि यदि कंपाइलर में C++ अपवाद अक्षम हैं, तो फ़ंक्शन ओवरलोड रिज़ॉल्यूशन में भाग नहीं लेता है ([SWS_CORE_00519])।
यह उपयोग निर्देश रिलीज़ R25-11 के AUTOSAR विनिर्देशों पर आधारित है।
Any exception of the type determined by the associated ErrorDomain as defined in [SWS_CORE_10953]
Hinweise: This function shall not participate in overload resolution when C++ exceptions are disabled in the compiler toolchain. Behaves as if this->Domain().ThrowAsException(*this).
Request a governed re-review of this record. The record is not changed immediately.
gemini-3.8-flash-low· 2026-10-13 · जर्मन मूल