डायग्नोस्टिक सेवाएँ प्रदान करते समय त्रुटि कोड वाले अपवादों के माध्यम से त्रुटि संकेतन का कार्य करता है।
एआई-जनितअसत्यापितमॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: 3b24259852fbउद्गमखुले प्रश्न (3)
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल
डायग्नोस्टिक सेवाएँ प्रदान करते समय त्रुटि कोड वाले अपवादों के माध्यम से त्रुटि संकेतन का कार्य करता है।
वर्ग ara::diag::DiagOfferException एक विशिष्ट C++ अपवाद प्रकार के रूप में कार्य करता है, जिसे त्रुटियों का संकेत देने के लिए AUTOSAR Adaptive Platform के डायग्नोस्टिक वर्गों द्वारा फेंका जाता है ([SWS_DM_00985])। यह ara::core::Exception से व्युत्पन्न होता है और इसे ara::core::ErrorCode निर्दिष्ट करते हुए noexcept कंस्ट्रक्टर के माध्यम से थ्रेड-सुरक्षित रूप से इंस्टैंसिएट किया जाता है ([SWS_DM_00986])। यह अपवाद मुख्य रूप से डायग्नोस्टिक सेवाओं की पेशकश विफल होने पर उत्पन्न हो सकता है और अनियंत्रित प्रक्रिया समाप्ति को रोकने के लिए कॉलिंग एप्लिकेशन द्वारा इसे पकड़ा जाना चाहिए। प्रश्न (खुला)
संदर्भ
वर्ग ara::diag::DiagOfferException AUTOSAR Adaptive Platform ([SWS_DM_00985], SWS Diagnostics §8.11.6 “Class: DiagOfferException”) के भीतर डायग्नोस्टिक मॉड्यूल का एक केंद्रीय अपवाद प्रकार है। इसके विनिर्देश के अनुसार, यह डायग्नोस्टिक वर्गों द्वारा फेंका जाने वाला एक अपवाद है (\"Exception type thrown by Diag classes\")। यह वर्ग बेस क्लास ara::core::Exception से सार्वजनिक रूप से व्युत्पन्न होता है और इसे हेडर ara/diag/diag_error_domain.h के माध्यम से अनुप्रयोगों में शामिल किया जाना चाहिए ([SWS_DM_00986])।
प्राथमिक इंटरैक्शन भागीदारों में डायग्नोस्टिक्स प्रबंधन के कार्यात्मक वर्ग, AUTOSAR Adaptive का अंतर्निहित त्रुटि आर्किटेक्चर (ara::core::ErrorCode द्वारा दर्शाया गया) और अनुप्रयोग सॉफ़्टवेयर शामिल हैं जो डायग्नोस्टिक्स सेवाएँ प्रदान करते हैं। वर्ग का नाम बताता है कि यह अपवाद संभवतः तब उपयोग किया जाता है जब संबंधित Diag वर्गों द्वारा डायग्नोस्टिक सेवाओं की पेशकश या पंजीकरण विफल हो जाता है (व्याख्या)। प्रश्न Q-47046201c9fd38c3 (खुला)
जीवनचक्र
ara::diag::DiagOfferException का इंस्टैंसिएशन इसके एकमात्र निर्दिष्ट कंस्ट्रक्टर explicit DiagOfferException(ara::core::ErrorCode err) noexcept के माध्यम से होता है ([SWS_DM_00986], SWS Diagnostics §8.11.6.1.1.1 “DiagOfferException”)। ऐसा करते समय, अपवाद सीधे एक विशिष्ट त्रुटि कोड से बंध जाता है। चूँकि कंस्ट्रक्टर को noexcept घोषित किया गया है, यह गारंटी दी जाती है कि अपवाद ऑब्जेक्ट के निर्माण के दौरान ही कोई और त्रुटि या पुनरावर्ती अपवाद उत्पन्न नहीं होंगे ([SWS_DM_00986])।
जीवनचक्र के संबंध में, वर्ग C++ अपवाद प्रबंधन के सामान्य तंत्रों के अधीन है: इसे रनटाइम वातावरण की अपवाद मेमोरी पर बनाया जाता है, कॉल स्टैक पर पहुँचाया जाता है, और हैंडलिंग catch ब्लॉक के निष्पादन के बाद स्वचालित रूप से जारी किया जाता है। विनिर्देश के अनुसार, निर्माण thread-safe और exception-safe है ([SWS_DM_00986])। इसके निर्माण के बाद, अपवाद ऑब्जेक्ट में कोई जटिल आंतरिक स्थिति परिवर्तन नहीं होते हैं; यह संभवतः पास किए गए त्रुटि कोड के लिए एक अपरिवर्तनीय परिवहन आवरण के रूप में कार्य करता है (व्याख्या)। प्रश्न Q-09c6e0ad610717e9 (खुला)
उपयोग पथ
ara::diag::DiagOfferException के उपयोग का विशिष्ट क्रम निम्नलिखित चरणों में विभाजित है:
डायग्नोस्टिक सेवा या पोर्ट (Offer ऑपरेशन) प्रदान करने के लिए एक अनुप्रयोग डायग्नोस्टिक वर्ग की एक विधि को कॉल करता है।
डायग्नोस्टिक वर्ग इनिशियलाइज़ेशन या पंजीकरण के दौरान एक त्रुटि स्थिति की पहचान करता है और एक उपयुक्त ara::core::ErrorCode को इंस्टैंसिएट करता है।
डायग्नोस्टिक वर्ग इस त्रुटि कोड ([SWS_DM_00986]) को पास करके ara::diag::DiagOfferException का एक इंस्टेंस बनाता है और इस अपवाद को फेंकता है।
कॉल करने वाला अनुप्रयोग सॉफ़्टवेयर try-catch ब्लॉक के भाग के रूप में अपवाद को पकड़ता है।
कॉलर अपवाद से त्रुटि कोड निकालता है और उपयुक्त विफलता या पुनरावृत्ति रणनीतियों को शुरू करता है।
अनुक्रम आरेख: DiagOfferException के माध्यम से त्रुटि के संकेतन और प्रबंधन के दौरान विशिष्ट प्रवाह। स्रोत: [SWS_DM_00985], [SWS_DM_00986]।
त्रुटि परिदृश्य
ara::diag::DiagOfferException स्वयं त्रुटि स्थितियों के लिए एक संकेतन तंत्र के रूप में कार्य करता है। इंस्टैंसिएशन के लिए पूर्व शर्त के रूप में, कॉलिंग इंस्टेंस के पास एक मान्य ara::core::ErrorCode उपलब्ध होना चाहिए ([SWS_DM_00986])। चूँकि कंस्ट्रक्टर को noexcept के रूप में परिभाषित किया गया है, इंस्टैंसिएशन किसी भी परिस्थिति में द्वितीयक अपवादों की ओर नहीं ले जाता है ([SWS_DM_00986])।
यदि फेंका गया DiagOfferException अनुप्रयोग सॉफ़्टवेयर द्वारा नहीं पकड़ा जाता है, तो यह डिफ़ॉल्ट रूप से std::terminate को कॉल करने की ओर ले जाता है और इस प्रकार प्रक्रिया के अनियंत्रित क्रैश का कारण बनता है। ara::core::Exception से इनहेरिटेंस के कारण, प्रक्रिया स्तर पर मजबूत त्रुटि सहनशीलता सुनिश्चित करने के लिए संभवतः यह प्रावधान किया गया है कि ara::diag::DiagOfferException को विशेष रूप से पकड़ने के अलावा, ara::core::Exception के लिए एक जेनेरिक हैंडलर भी प्रभावी हो सकता है (व्याख्या)। प्रश्न Q-d0cf602a077c4dae (खुला)
यह मार्गदर्शिका AUTOSAR Adaptive R25-11 विनिर्देश (मॉड्यूल diag) पर आधारित है और इसे autodocs के लिए स्वचालित रूप से जनरेट किया गया था।
UML क्लास आरेख
Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.
gemini-3.8-flash-low· 2026-10-13 · जर्मन मूल