मेरे पास सी ++ कोड है जो कुछ सी पुस्तकालयों का उपयोग करता है। सी पुस्तकालय सी भाषा कॉलबैक लेते हैं। मैंने अपने सी ++ कोड में एक कॉलबैक लिखा और अब मुझे किसी भी तरह से त्रुटि की रिपोर्ट करने की आवश्यकता है (लेकिन यह शून्य हो जाता है)। मुझे आश्चर्य है कि क्या मैं सी ++ कोड से उपयोग किए जाने वाले सी कॉलबैक से अपवाद फेंक सकता हूं?क्या मैं विरासत सी कॉलबैक से सी ++ अपवाद फेंक सकता हूं?
मेरे लिए यह समझना बहुत मुश्किल है।
धन्यवाद, बोडा साइडो।
+1 अच्छा बिंदु, सी लाइब्रेरी कॉलबैक फ़ंक्शन को कॉल करने से पहले स्मृति को आवंटित कर सकता है, फ़ाइल या नेटवर्क कनेक्शन खोल सकता है। यदि आप वहां अपवाद फेंकते हैं, तो लाइब्रेरी बाद में साफ़ नहीं होती है। – Ozan
सुझावों के लिए धन्यवाद। मैंने इसे एक वैश्विक चर का उपयोग किया जो त्रुटि होने पर सेट हो जाता है। इस सी कॉलबैक फ़ंक्शन के बाद की सभी कॉलें तो बस वापस आएं और कुछ भी नहीं करें। पुस्तकालय के बाद सभी सी कॉल के साथ किया जाता है, और मैं अपने सी ++ कोड पर वापस आ जाता हूं, मैं जांचता हूं कि यह वैश्विक चर सेट किया गया था, और यदि यह था, तो मैं त्रुटि की रिपोर्ट करता हूं। – bodacydo
आपके पहले दो कथन पारस्परिक रूप से विरोधाभासी हैं। "हाँ, आपको ऐसा करने में सक्षम होना चाहिए।" - ठीक अच्छा। "हालांकि, ध्यान रखें कि यह पूरी तरह से संभावना है कि सी पुस्तकालय अपवाद सुरक्षित नहीं लिखा गया था," - ओह, तो जवाब वास्तव में नहीं है। कभी भी कोड में अपवाद फेंक न दें जो अपवाद सुरक्षित नहीं है। – JeremyP