चर्चा में टिम की देर से प्रविष्टि के जवाब में (जो लेव की बहुत प्रारंभिक टिप्पणियों में से एक को संबोधित करता है)।
उन लोगों में से एक जिन्होंने राज्यचर्चा में विध्वंसकों से बाहर निकलने के लिए तर्क दिया था (एक वास्तविक उपयोग मामले पर आधारित तर्क, वास्तविक दुनिया के साथ बातचीत के बारे में अर्थात I / O) जिस तरह से बूस्ट के लिए प्रस्तुत किया गया था, मैं मानता हूं कि बाहर निकलने में समस्याएँ हो सकती हैं। तबाही में तर्क। डेविड अब्राहम ने बिना किसी अपवाद के सुरक्षा के संबंध में अनिश्चित तर्क दिए। उन कारणों से Statechart को आपको विध्वंसक में तर्क रखने की आवश्यकता नहीं है - लेकिन यह आपको सामान्य सलाह के साथ - करने की अनुमति देता है।
लॉजिक जो कभी भी एक राज्य से बाहर एक संक्रमण के हिस्से के रूप में चलना चाहिए (एक पूरे के रूप में स्टेटचर्ट ऑब्जेक्ट का विनाश नहीं) (और अगर वहाँ भी संसाधन सफाई करना है) एक अलग निकास () कार्रवाई में अलग किया जाना चाहिए।
बिना सक्रिय राज्य (संसाधन) वाले "पतले" राज्य के लिए, प्रदर्शन करने के लिए केवल प्रवेश / निकास क्रियाएं, आप उन कार्यों को ctor और d'tor में कर सकते हैं और सुनिश्चित कर सकते हैं कि कंस्ट्रक्टर और विध्वंसक फेंक न दें। उनके लिए कोई कारण नहीं है - आरएआई पर प्रदर्शन करने के लिए कोई राज्य नहीं है - इन स्थानों में त्रुटि से निपटने में कोई बुराई नहीं है उपयुक्त घटनाओं। आपको अभी भी यह विचार करने की आवश्यकता हो सकती है कि क्या आप एग्जिट एक्शन चाहते हैं जो बाहरी राज्य को राज्य मशीन विनाश पर चलाने के लिए बदल दें ... और यदि आप उन्हें इस मामले में नहीं चाहते हैं तो एग्जिट एक्शन में डाल दें ...
किसी वस्तु की तात्कालिकता के रूप में स्टेटचैट मॉडल सक्रियण, इसलिए यदि आपके निर्माता के पास वास्तविक कार्य / सक्रियण / इंस्टेंटेशन करने के लिए है और यदि वह ऐसा करने में विफल है, तो राज्य में प्रवेश नहीं किया जा सकता है। प्रतिस्पर्धा। इसे एक तरह से नियंत्रित किया जाता है, जो बाहरी स्थिति की तलाश में राज्य के पदानुक्रम को काम करता है जो अपवाद घटना को संभालता है, जिस तरह से कॉल कॉल स्टैक आधारित इनवोकेशन मॉडल के लिए स्टैक अनवाउंड होता है।
यह सब अच्छी तरह से प्रलेखित है - मेरा सुझाव है कि आप डॉक्स पढ़ें और इसे आज़माएं। मेरा सुझाव है कि आप "वास्तविक दुनिया से बाहर निकलने की क्रिया" करने के लिए "सॉफ्टवेयर संसाधनों" और निकास क्रियाओं को साफ करने के लिए विनाशकों का उपयोग करें।
यह ध्यान देने योग्य है कि अपवाद प्रचार केवल राज्यचरों के लिए ही नहीं बल्कि सभी घटना संचालित परिवेशों में एक समस्या है। अपने स्टेटचेयर डिज़ाइन में दोष / त्रुटियों के बारे में तर्क करना और उन्हें शामिल करना सबसे अच्छा है और यदि आप केवल अपवाद मैपिंग का दूसरा तरीका नहीं अपना सकते हैं तो। कम से कम जो मेरे लिए काम करता है - ymmmv ...।