मैं सी में एक पायथन मॉड्यूल लिख रहा हूं। मुझे उन त्रुटियों की रिपोर्ट करने की आवश्यकता है जिन्हें अंतर्निहित पायथन अपवादों द्वारा वर्णित नहीं किया जा सकता है। इसलिए मैं अपने स्वयं के प्रकार के अपवाद फेंकना चाहता हूं। समस्या यह है कि पाइथन नीति बेसएक्सप्शन कक्षा से सभी अपवादों को प्राप्त करना है। मुझे पता है कि व्युत्पन्न प्रकार वस्तु कैसे बनाएं (tp_base memeber को असाइन करना), लेकिन मुझे नहीं पता कि बेसएक्सप्शन प्रकार ऑब्जेक्ट का संदर्भ कैसे प्राप्त करें। PyExc_BaseException PyObject का संदर्भ है, एक वर्ग का प्रतिनिधित्व करता है, एक प्रकार वस्तु नहीं।सी एक्सटेंशन में कस्टम पायथन अपवाद प्रकार कैसे बनाएं?
मैं सी कोड से कस्टम पायथन अपवाद कैसे फेंक सकता हूं?
ए (नई शैली) वर्ग और एक प्रकार की वस्तु पाइथन में एक ही चीज़ है, इसलिए मुझे आपकी समस्या नहीं आती है। –
स्वेन, मैंने PyExc_RuntimeError डाला है और इसे अपने स्वयं के अपवाद के लिए आधार प्रकार के रूप में उपयोग किया है। अभी तक कुछ भी बुरा नहीं हुआ (मुझे विश्वास है कि लंबी दौड़ के बाद सेगफाल्ट कुछ और के कारण होते हैं)। क्या आप मेरे प्रश्न का उत्तर दे सकते हैं, इसलिए मैं आपका जवाब स्वीकार कर सकता हूं? – Basilevs