अगर मैं अप्रबंधित सी ++, विजुअल स्टूडियो 2008 या उससे अधिक में एक नई परियोजना बना रहा हूं, तो कौन सा अपवाद हैंडलिंग मॉडल मैं साथ जाना चाहता हूं?दृश्य सी ++ अप्रबंधित कोड: सी ++ अपवादों के लिए उपयोग/ईएचए या/ईएचएससी?
मैं समझता हूं कि/ईएचए विकल्प कम कुशल कोड में परिणाम देता है, और एसईएच अपवाद भी पकड़ता है, है ना?
तो मैं उस विकल्प को स्पष्ट रूप से चला रहा हूं और आमतौर पर/ईएचएससी के साथ जा रहा हूं, ताकि मैं केवल सी ++ अपवादों को पकड़ रहा हूं जो वास्तव में फेंक रहे हैं और पहुंच उल्लंघन और अन्य संरचित निष्पादन को पकड़ने में नहीं हैं (...) संचालकों। अगर मेरे कोड में कोई एक्सेस उल्लंघन है, तो मैं नहीं चाहता कि इसे पकड़ (...) {} द्वारा मुखौटा किया जा रहा हो।
मैं उन लोगों के साथ कोड करता हूं जो पकड़ने के लिए (...) {} कुछ भी नहीं करते हैं और यदि कोई पहुंच उल्लंघन होता है तो वे इसे भी करना चाहते हैं, जो मुझे वास्तव में एक बुरा विचार लगता है। यदि खराब कोडिंग के कारण कोई बग है, तो आप अपनी उंगलियों को अपने कानों में नहीं रखना चाहते हैं और जोर से कहते हैं "ला ला ला ला ला!" ताकि आपको प्रोग्राम क्रैश न हो? वास्तव में, यदि कोड कोडिंग त्रुटि के कारण कोड खराब स्थिति में है, तो क्या आप वास्तव में कोड जारी रखना चाहते हैं?
तो मेरा सामान्य विचार यह है कि/ईएचए बड़ा/धीमा कोड बनाता है और यह प्रोग्रामर को लिखित कोड से दूर जाने की अनुमति देता है कि अगर घातक बग मौजूद है, तो यह एक अनिर्धारित स्थिति में चलना जारी रहेगा।
बीटीडब्ल्यू, मैं एप्लिकेशन और सेवा कोड के बारे में बात कर रहा हूं जो हम अधिकांश भाग के लिए लिख रहे हैं। कम स्तर के डिवाइस ड्राइवर या ऐसा कुछ भी नहीं।
कृपया अपने विचारों के साथ वजन करें।
आपको किसी भी मामले में एक्सेस उल्लंघनों को पकड़ने की कोशिश कभी नहीं करना चाहिए। –
यह मेरी समझ है ... लेकिन मेरे पास लोगों को पकड़ने (...) {} और यदि/ईएचए चुना गया है, तो वह उस विश्वास उल्लंघन को दफन करेगा जो मेरा मानना है। पकड़ने के लिए यह एक बात है (...) {cleanup_stuff; फेंकना; } लेकिन यहां तक कि उस मामले में, यदि यह एक एक्सेस उल्लंघन है जिसे पकड़ा जा रहा है, तो क्या आप सुनिश्चित हैं कि cleanup_stuff यह काम करने जा रहा है? आप एक बुरे राज्य में हैं, इसलिए शायद मुझे लगता है कि कार्यक्रम सिर्फ दुर्घटनाग्रस्त होने से सबसे अच्छा है। – MarkS
मैं क्लाइंट/सर्वर सिस्टम पर काम कर रहा हूं, जहां सर्वर में अपवाद है (आदर्श रूप से, एक्सेस उल्लंघन सहित कोई अपवाद), मैं सर्वर थ्रेड को क्रैश होने की अनुमति देने से पहले क्लाइंट को अपवाद संदेश भेजना चाहता हूं। अन्यथा, सर्वर बस जवाब देना बंद कर देता है। –