असफल मॉड्यूल ऑपरेशनों के लिए एक थ्रेड-सुरक्षित अपवाद के रूप में Platform Health Management के त्रुटि कोड को समाहित करता है।
एआई-जनितअसत्यापितमॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: 9c0b25d6fb92उद्गमखुले प्रश्न (2)
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल
असफल मॉड्यूल ऑपरेशनों के लिए एक थ्रेड-सुरक्षित अपवाद के रूप में Platform Health Management के त्रुटि कोड को समाहित करता है।
वर्ग ara::phm::PhmException Platform Health Management में कॉलिंग घटकों को मॉड्यूल-विशिष्ट त्रुटियों को समाहित करने और अग्रेषित करने के लिए एक केंद्रीय अपवाद प्रकार के रूप में कार्य करता है। त्रुटि का पता चलने पर इसे स्पष्ट रूप से ara::core::ErrorCode के साथ इंस्टेंटिएट किया जाता है और संबंधित catch ब्लॉक के माध्यम से संरचित त्रुटि प्रबंधन को सक्षम करने के लिए फेंक दिया जाता है [SWS_PHM_01243]। एक महत्वपूर्ण बाधा के रूप में, इसका निर्माण noexcept, thread-safe और साथ ही exception-safe निर्दिष्ट है, जिसके कारण अपवाद निर्माण में द्वितीयक त्रुटियों को बाहर रखा गया है [SWS_PHM_01243]। Interpretation: कॉल करने वाले आमतौर पर गतिशील मेमोरी आवंटन के बिना निहित त्रुटि कोड का नियतात्मक रूप से मूल्यांकन करने के लिए ऑब्जेक्ट को संदर्भ द्वारा पकड़ते हैं। प्रश्न (खुला)
संदर्भ
वर्ग ara::phm::PhmException AUTOSAR Adaptive Platform के भीतर Platform Health Management (PHM) के लिए समर्पित अपवाद प्रकार के रूप में कार्य करता है। वर्ग परिभाषा के अनुसार, वर्ग सार्वजनिक रूप से ara::core::Exception से व्युत्पन्न होता है और मानकीकृत C++ अपवाद तंत्र के माध्यम से कॉलिंग सिस्टम और एप्लिकेशन घटकों को मॉड्यूल phm की त्रुटि स्थितियों को संप्रेषित करने के लिए कड़ी का प्रतिनिधित्व करता है। सिस्टम आर्किटेक्चर में, वर्ग मुख्य रूप से ऑपरेटिव PHM सेवाओं (जो निगरानी कार्य करती हैं और नियम उल्लंघनों पर त्रुटि स्थितियों का पता लगाती हैं) और एप्लिकेशन के उच्च-स्तरीय त्रुटि प्रबंधन रूटीन के बीच इंटरैक्ट करता है। ara::core के मौलिक त्रुटि प्रबंधन मॉडल में एकीकरण द्वारा यह सुनिश्चित किया जाता है कि Platform Health Management से डोमेन-विशिष्ट त्रुटि रिपोर्टों को समान रूप से स्थानांतरित और संसाधित किया जा सकता है।
जीवनचक्र
ara::phm::PhmException के एक इंस्टेंस का जीवन चक्र त्रुटि की स्थिति में स्पष्ट इंस्टेंसिएशन के साथ शुरू होता है। [SWS_PHM_01243] के अनुसार, ऑब्जेक्ट हेडर ara/phm/phm_error_domain.h के समावेश के साथ कंस्ट्रक्टर PhmException(ara::core::ErrorCode errorCode) के माध्यम से बनाया जाता है। निर्माण को noexcept घोषित किया गया है और इसमें “exception safe” और “thread-safe” दोनों विशेषताएं हैं [SWS_PHM_01243]। यह गारंटी देता है कि अपवाद ऑब्जेक्ट का इंस्टेंसिएशन उच्च समवर्तीता के तहत भी सुरक्षित रूप से होता है और किसी भी समय अप्रत्याशित द्वितीयक अपवादों को ट्रिगर नहीं करता है।
ऑब्जेक्ट पारित ara::core::ErrorCode को समाहित करता है और इसके निर्माण के बाद एक अपरिवर्तनीय स्थिति रखता है। स्टैक अनवाइंडिंग के दौरान, अपवाद ऑब्जेक्ट रनटाइम वातावरण के माध्यम से ले जाया जाता है। मानक C++ नियमों के अनुसार हैंडलिंग catch ब्लॉक को छोड़ते समय विनाश नियतात्मक रूप से होता है। Interpretation: इंस्टेंस आमतौर पर स्टैक पर सीधे throw अभिव्यक्ति में बनाए जाने चाहिए और संदर्भ (const ara::phm::PhmException&) द्वारा पकड़े जाने चाहिए, ताकि कॉलर की ओर से किसी गतिशील मेमोरी प्रबंधन की आवश्यकता न हो। प्रश्न Q-37fc47021a78a0db (खुला)
उपयोग पथ
विशिष्ट उपयोग पथ तब शुरू होता है जब Platform Health Management का कोई मॉनिटर किया गया ऑपरेशन विफल हो जाता है या किसी अमान्य स्थिति विचलन का पता चलता है। ट्रिगर करने वाला PHM फ़ंक्शन तब संबंधित त्रुटि कोड के साथ एक अपवाद ऑब्जेक्ट को आरंभ करता है और इसे [SWS_PHM_01243] से फेंकता है। कॉलर की तरफ, संरक्षित कोड अनुभाग एक try-catch ब्लॉक के भीतर निष्पादित किया जाता है। संभवतः, एप्लिकेशन अपवाद को या तो विशेष रूप से ara::phm::PhmException के रूप में या आधार वर्ग ara::core::Exception के माध्यम से बहुरूपी रूप से पकड़ते हैं। प्रश्न Q-54638c0dde7d9195 (खुला) अपवाद हैंडलर में, कारण का विश्लेषण करने और उचित प्रतिउपायों या आपातकालीन रणनीतियों को शुरू करने के लिए निहित ara::core::ErrorCode निकाला जाता है।
अनुक्रम आरेख: PHM में त्रुटि पहचान से लेकर ara::phm::PhmException को ट्रिगर करने और हैंडलर में मूल्यांकन तक का सामान्य प्रवाह। स्रोत: [SWS_PHM_01243]।
त्रुटि परिदृश्य
ara::phm::PhmException का केंद्रीय घटक रनटाइम पर त्रुटि कोड का स्थानांतरण है। ऑब्जेक्ट निर्माण के लिए एक पूर्व शर्त के रूप में एक मान्य ara::core::ErrorCode[SWS_PHM_01243] का पारित होना आवश्यक है। कॉल की उत्तर शर्त एक पूरी तरह से आरंभिक अपवाद ऑब्जेक्ट है, जो पारित त्रुटि कोड को क्वेरी के लिए अपरिवर्तित उपलब्ध कराता है।
चूंकि कंस्ट्रक्टर को स्पष्ट रूप से noexcept और “exception safe” के रूप में निर्दिष्ट किया गया है [SWS_PHM_01243], अपवाद के निर्माण के दौरान अपवादों की घटना को बाहर रखा गया है। इसलिए ऑब्जेक्ट निर्माण की विफलता नहीं हो सकती है, जो त्रुटि रिपोर्ट के दौरान std::terminate के माध्यम से समय से पहले समाप्ति को रोकता है। निर्दिष्ट थ्रेड सुरक्षा (“thread-safe”) डेटा भ्रष्टाचार से भी बचाती है जब एकाधिक थ्रेड समानांतर में अपने स्वयं के अपवादों के माध्यम से त्रुटि स्थितियों की रिपोर्ट करते हैं [SWS_PHM_01243]। परिणामस्वरूप, त्रुटि परिदृश्य स्वयं अपवाद वर्ग को प्रभावित नहीं करते हैं, बल्कि तकनीकी त्रुटि कारणों को दर्शाते हैं जो PHM त्रुटि डोमेन के एनकैप्सुलेटेड ara::core::ErrorCode में कोडित हैं।
यह मार्गदर्शिका AUTOSAR Adaptive Platform R25-11 के विनिर्देश के आधार पर एक AI द्वारा तैयार की गई थी।
UML क्लास आरेख
Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.
gemini-3.8-flash-low· 2026-10-13 · जर्मन मूल