त्रुटि कोड, टेक्स्ट विवरण और अपवाद प्रदान करने के लिए Persistency मॉड्यूल के त्रुटि डोमेन को परिभाषित करता है।
एआई-जनितअसत्यापितमॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: da81ed3d3cb6उद्गमखुले प्रश्न (1)
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल
त्रुटि कोड, टेक्स्ट विवरण और अपवाद प्रदान करने के लिए Persistency मॉड्यूल के त्रुटि डोमेन को परिभाषित करता है।
ara::per::PerErrorDomain क्लास Persistency मॉड्यूल के लिए त्रुटि डोमेन को परिभाषित करती है और त्रुटि कोड को विवरणात्मक संदेशों व अपवाद प्रकारों के साथ जोड़ती है [SWS_PER_00411]। यह थ्रेड-सुरक्षित इंटरफ़ेस के माध्यम से डोमेन नाम की क्वेरी करने और ठोस त्रुटि मानों के लिए त्रुटि विवरणों को हल करने में सक्षम बनाती है। आवश्यकता पड़ने पर, यह ThrowAsException() के माध्यम से त्रुटियों को C++ अपवादों में परिवर्तित करती है [SWS_PER_00350]। यदि कंपाइलर टूलचेन में अपवाद अक्षम हैं, तो यह ट्रिगरिंग फ़ंक्शन उपलब्ध नहीं होता है, जिससे त्रुटि जाँच पूरी तरह से रिटर्न-वैल्यू आधारित होनी चाहिए।
संदर्भ
ara::per::PerErrorDomain क्लास AUTOSAR Adaptive Platform के भीतर Persistency मॉड्यूल (Persistency) के लिए विशिष्ट त्रुटि डोमेन को परिभाषित करती है। यह बेस टाइप परिभाषा ara::core::ErrorDomain से इनहेरिट करती है और इसे final के रूप में घोषित किया गया है, जिससे यह सभी स्थायित्व-संबंधी ऑपरेशनों के टाइप्ड त्रुटि प्रबंधन और त्रुटि मैपिंग का आधार बनती है। अंतर्निहित त्रुटि कोड एन्यूमरेशन PerErrc के लिए मानकीकृत टाइप उपनामों Errc[SWS_PER_00411] और मॉड्यूल-विशिष्ट अपवाद बेस क्लास PerException के लिए Exception[SWS_PER_00412] के माध्यम से, क्लास संख्यात्मक त्रुटि मानों, सार्थक त्रुटि संदेशों और ठोस C++ अपवाद ऑब्जेक्ट्स को जोड़ती है। प्लेटफ़ॉर्म आर्किटेक्चर में, त्रुटि डोमेन Persistency सेवाओं, कॉलिंग कार्यात्मक समूहों और ara::core की सामान्य त्रुटि और परिणाम संरचनाओं के साथ निकटता से इंटरैक्ट करता है।
जीवनचक्र
इंस्टैंस का निर्माण मानक कंस्ट्रक्टर PerErrorDomain()[SWS_PER_00313] के माध्यम से होता है। यह कंस्ट्रक्टर noexcept के रूप में घोषित है, पूर्णतः अपवाद-सुरक्षित (exception safe) और थ्रेड-सुरक्षित (thread-safe) है। व्याख्या: संपूर्ण संचालन के दौरान Persistency त्रुटियों के लिए सुसंगत डोमेन तुलना और प्रकार समाधान सुनिश्चित करने के लिए, PerErrorDomain का इंस्टैंस आमतौर पर एक दीर्घकालिक या ग्लोबल ऑब्जेक्ट के रूप में प्रबंधित किए जाने की संभावना है। प्रश्न Q-5d90982fddec40a7 (खुला) चूंकि क्लास के सभी क्वेरी ऑपरेशन भी थ्रेड-सुरक्षित के रूप में वर्गीकृत हैं, इसलिए कॉलर स्तर पर अतिरिक्त सिंक्रोनाइज़ेशन तंत्र की आवश्यकता के बिना कई थ्रेड समानांतर रूप से एक ही डोमेन इंस्टैंस तक पहुंच सकते हैं।
उपयोग पथ
एक विशिष्ट उपयोग पथ में डोमेन की पहचान, समझने योग्य निदान जानकारी की क्वेरी करना और वैकल्पिक रूप से Persistency मॉड्यूल में हुई त्रुटियों के लिए अपवाद थ्रो करना शामिल है। सबसे पहले, सदस्य फ़ंक्शन Name() त्रुटि डोमेन के अद्वितीय पहचानकर्ता को स्ट्रिंग के रूप में लौटाता है [SWS_PER_00314]; इसे noexcept, अपवाद-सुरक्षित और थ्रेड-सुरक्षित के रूप में निर्दिष्ट किया गया है। यदि किसी Persistency ऑपरेशन में कोई त्रुटि होती है, तो उसका संख्यात्मक त्रुटि मान Message() के माध्यम से हल किया जाता है [SWS_PER_00315]। यह विधि CodeType प्रकार का संख्यात्मक त्रुटि कोड स्वीकार करती है और संबंधित त्रुटि संदेश को एक स्थिर वर्ण सूचक (const char *) के रूप में लौटाती है, जो पूर्ण अपवाद-सुरक्षा और थ्रेड-सुरक्षा की गारंटी के तहत भी है।
यदि किसी त्रुटि स्थिति को C++ अपवाद में परिवर्तित किया जाना है, तो फ़ंक्शन ThrowAsException() का उपयोग किया जाता है [SWS_PER_00350]। निम्नलिखित प्रवाह त्रुटि क्वेरी और अपवाद थ्रो करने की पारस्परिक क्रिया को स्पष्ट करता है:
अनुक्रम आरेख: PerErrorDomain के माध्यम से त्रुटि जाँच, टेक्स्ट क्वेरी और अपवाद थ्रो करने का विशिष्ट प्रवाह। स्रोत: [SWS_PER_00314], [SWS_PER_00315], [SWS_PER_00350]।
त्रुटि परिदृश्य
ara::per::PerErrorDomain के व्यावहारिक उपयोग में, डेवलपर्स को त्रुटि प्रबंधन और अपवाद-सुरक्षा से संबंधित विभिन्न गारंटियों पर विचार करना चाहिए। जबकि क्वेरी इंटरफ़ेस Name()[SWS_PER_00314] और Message()[SWS_PER_00315] को सख्ती से noexcept के रूप में घोषित किया गया है और अपवाद-सुरक्षित के रूप में वर्गीकृत किया गया है, सदस्य फ़ंक्शन ThrowAsException() को अपवाद-सुरक्षित नहीं (not exception safe) माना जाता है [SWS_PER_00350]। यह व्यवहार शब्दार्थिक रूप से उचित है, क्योंकि फ़ंक्शन का उद्देश्य त्रुटि कोड के अनुरूप अपवाद को नियंत्रित तरीके से थ्रो करना है (noexcept(false))।
एक महत्वपूर्ण सीमांत शर्त उन प्लेटफ़ॉर्मों या बिल्ड कॉन्फ़िगरेशन से संबंधित है जिनमें C++ अपवाद सक्षम नहीं हैं: यदि कंपाइलर में अपवाद प्रबंधन अक्षम है, तो ThrowAsException()[SWS_PER_00350] के अनुसार ओवरलोड रिज़ॉल्यूशन में भाग नहीं लेता है। ऐसे परिवेशों में, एप्लिकेशन सॉफ़्टवेयर को Exception[SWS_PER_00412] प्रकार के अपवाद ऑब्जेक्ट्स को पकड़ने के बजाय प्रदान किए गए उपनामों Errc[SWS_PER_00411] और Message()[SWS_PER_00315] के टेक्स्ट विवरणों के माध्यम से त्रुटि कोड के मूल्यांकन पर निर्भर रहना चाहिए।
यह गाइड AUTOSAR विनिर्देश आवश्यकताओं के आधार पर स्वचालित रूप से तैयार किया गया था।
Throws the exception associated with the error code. As per [SWS_CORE_10304], this function does not participate in overload resolution when C++ exceptions are disabled in the compiler toolchain.
Throws the exception associated with the error code. As per [SWS_CORE_10304], this function does not participate in overload resolution when C++ exceptions are disabled in the compiler toolchain.
gemini-3.8-flash-low· 2026-10-13 · जर्मन मूल