एक C++ अपवाद के रूप में महत्वपूर्ण कार्यात्मक त्रुटियों के अग्रेषण और प्रबंधन के लिए State Management के त्रुटि कोड को समाहित करता है।
एआई-जनितअसत्यापितमॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: 72647117def3उद्गमखुले प्रश्न (1)
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल
एक C++ अपवाद के रूप में महत्वपूर्ण कार्यात्मक त्रुटियों के अग्रेषण और प्रबंधन के लिए State Management के त्रुटि कोड को समाहित करता है।
क्लास ara::sm::SmException अपवाद स्थितियों को अग्रेषित करने का कार्य करती है जो State Management के ऑपरेशनों के दौरान उत्पन्न होती हैं [SWS_SM_81242]। यह ara::core::Exception से व्युत्पन्न है और उत्पन्न त्रुटि के सटीक कारण की पहचान करने के लिए एक विशिष्ट ara::core::ErrorCode को समाहित करती है। इसका निर्माण एक स्पष्ट कंस्ट्रक्टर के माध्यम से होता है जिसे थ्रेड-सुरक्षित और अपवाद-सुरक्षित निर्दिष्ट किया गया है [SWS_SM_81243]। समाहित त्रुटि कोड का विश्लेषण करने और उचित पुनर्प्राप्ति उपायों को शुरू करने के लिए कॉलिंग एप्लिकेशन ऑब्जेक्ट को संरचित तरीके से कैच करते हैं।
संदर्भ
क्लास ara::sm::SmException AUTOSAR Adaptive Platform [SWS_SM_81242] में कार्यात्मक क्लस्टर State Management के लिए केंद्रीय अपवाद के रूप में कार्य करती है। यह हेडर ara/sm/sm_error_domain.h में परिभाषित है और सार्वजनिक रूप से मूलभूत प्लेटफ़ॉर्म अपवाद क्लास ara::core::Exception से व्युत्पन्न है AUTOSAR_AP_SWS_StateManagement §8.1.4 “Class: SmException”। दस्तावेज़ के भीतर, क्लास के विनिर्देश को DRAFT स्थिति के साथ रखा गया है [SWS_SM_81242]।
आर्किटेक्चरल संदर्भ में, यह क्लास तीन केंद्रीय भूमिकाओं को जोड़ती है: विफल स्थिति ऑपरेशनों के दौरान ट्रिगर करने वाले इंस्टेंस के रूप में State Management, हैंडलर के रूप में कॉलिंग Adaptive एप्लिकेशन, तथा ara::core का बुनियादी ढाँचा, जो त्रुटि प्रबंधन के लिए सामान्य इंटरफ़ेस प्रदान करता है। त्रुटि स्थितियों के वाहक के रूप में, यह C++ अपवाद तंत्र के माध्यम से सिंक्रोनस रूप से मॉड्यूल sm से उच्च-स्तरीय नियंत्रण इंस्टेंस तक त्रुटि स्थितियों को अग्रेषित करने का कार्य करती है।
जीवनचक्र
ara::sm::SmException का इंस्टेंसिएशन स्पष्ट रूप से कंस्ट्रक्टर SmException(ara::core::ErrorCode errorCode)[SWS_SM_81243] के माध्यम से होता है। यह कंस्ट्रक्टर noexcept के रूप में घोषित है और इसमें अपवाद सुरक्षा (exception safe) और थ्रेड सुरक्षा (thread-safe) दोनों गुण हैं AUTOSAR_AP_SWS_StateManagement §8.1.4.1.1.1 “SmException”। यह गारंटी देता है कि अपवाद ऑब्जेक्ट का निर्माण स्वयं विफल नहीं होगा या आगे के अपवादों को ट्रिगर नहीं करेगा, भले ही इसे समवर्ती निष्पादन संदर्भों में बनाया गया हो।
निर्माण के बाद, इंस्टेंस को आमतौर पर मान द्वारा (by value) फेंका जाता है और कॉलिंग संदर्भ में स्थिर ऑब्जेक्ट्स के संदर्भ (const ara::sm::SmException& या बहुरूपी रूप से const ara::core::Exception&) के रूप में पकड़ा जाता है। चूँकि विनिर्देश किसी विशिष्ट डिस्ट्रक्टर या मैन्युअल क्लीनअप रूटीन को निर्धारित नहीं करता है, व्याख्या के अनुसार अपवाद ऑब्जेक्ट का विनाश पूरी तरह से मानक C++ सिमेंटिक्स और बेस क्लास ara::core::Exception के तंत्र का पालन करेगा जैसे ही संबंधित हैंडलिंग ब्लॉक से बाहर निकला जाता है। प्रश्न Q-85b1fd2f6082db8e (खुला)
उपयोग पथ
विशिष्ट प्रवाह एक एप्लिकेशन या प्लेटफ़ॉर्म घटक से शुरू होता है जो State Management को स्थिति नियंत्रण अनुरोध भेजता है। यदि अनुरोधित स्थिति परिवर्तन आंतरिक रूप से निष्पादित नहीं किया जा सकता है या कोई गंभीर अपवाद त्रुटि होती है, तो State Management संबंधित ara::core::ErrorCode[SWS_SM_81243] निर्दिष्ट करते हुए ara::sm::SmException के एक इंस्टेंस को इंस्टेंटिएट करता है।
अनुक्रम आरेख: State Management में SmException का उपयोग करके किसी त्रुटि का विशिष्ट संकेतन और हैंडलिंग। स्रोत: [SWS_SM_81242], [SWS_SM_81243]।
कॉलिंग घटक फेंके गए अपवाद को संबंधित catch ब्लॉक में कैच करता है। बेस क्लास ara::core::Exception से इनहेरिट की गई विधियों के माध्यम से, एप्लिकेशन त्रुटि के कारण को अर्थपूर्ण रूप से वर्गीकृत करने और त्रुटि निवारण या सिस्टम स्थिति की पुनर्प्राप्ति के लिए लक्षित उपाय शुरू करने के लिए समाहित ara::core::ErrorCode का निरीक्षण कर सकता है।
त्रुटि परिदृश्य
क्लास ara::sm::SmException स्वयं एक त्रुटि-प्रवण ऑपरेशन तत्व का प्रतिनिधित्व नहीं करती है, बल्कि State Management [SWS_SM_81242] के भीतर अपवाद स्थितियों के लिए प्राथमिक वाहक ऑब्जेक्ट है। निर्माण के लिए आवश्यक पूर्व-शर्त कंस्ट्रक्टर कॉल [SWS_SM_81243] के दौरान एक इनिशियलाइज़्ड ara::core::ErrorCode ऑब्जेक्ट का प्रावधान है।
यदि कॉल स्टैक में फेंके गए ara::sm::SmException को किसी उपयुक्त हैंडलर द्वारा नहीं पकड़ा जाता है, तो मानक C++ नियमों के अनुसार यह std::terminate के कॉल की ओर ले जाता है और इस प्रकार प्रभावित प्रक्रिया की अनियंत्रित समाप्ति होती है। ara::core::Result के पक्ष में अपवादों से बचने का निर्देश देने वाले कार्यान्वयनों में, थ्रो करने से बचा जाता है; हालाँकि, यदि अपवाद पथ उपलब्ध है, तो समावेशन यह सुनिश्चित करता है कि मूल त्रुटि कोड त्रुटि निदान के लिए अपरिवर्तित रूप से ले जाया जाए।
यह क्लास गाइड AUTOSAR Adaptive R25-11 विनिर्देश पर आधारित है। सभी विवरण संदर्भित विनिर्देश बिंदुओं पर आधारित हैं।
UML क्लास आरेख
Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.
gemini-3.8-flash-low· 2026-10-13 · जर्मन मूल