2011-12-21 15 views
5

वर्तमान में हम केवल बाहरी स्रोत (उदाहरण के लिए डेटा की तरह) के परिणामस्वरूप अप्राप्य विफलता पर फेंक देते हैं और पूरे निष्पादन के आसपास एक भी प्रयास करने की कोशिश करते हैं।आधुनिक सी ++ में अपवादों का उपयोग कैसे किया जाना चाहिए?

आधुनिक सी ++ में कब/क्यों/अपवादों का उपयोग कैसे किया जाना चाहिए?

क्या सी ++ 11 उपर्युक्त प्रश्न का उत्तर बदलता है?

+4

अपवाद असाधारण स्थिति, स्थितियों कॉल स्टैक अप पारित होने के लिए क्योंकि आप को प्रभावी ढंग से संभाल सकते हैं की जरूरत है कि के लिए इस्तेमाल किया जाना चाहिए उन्हें उस स्तर पर जहां वे हुआ। –

+7

"मैं सिंटैक्स को नापसंद करता हूं और अपवादों की जटिलता को जोड़ता हूं" - हर बार जब आप कोई फ़ंक्शन कॉल करते हैं तो त्रुटि कोड जांचने का विरोध करते हैं? अपवादों को नापसंद करने के कारण हैं लेकिन मुझे नहीं लगता कि यह उनमें से एक है। –

+0

ठीक से उपयोग किए जाने पर अपवाद बहुत अच्छे होते हैं। हम उन्हें "कॉन्फ़िगरेशन समस्याएं" जैसी चीजों के लिए उपयोग करते हैं यानी एक खराब कॉन्फ़िगरेशन वाली प्रक्रिया शुरू करने से खराब कॉन्फ़िगरेशन लाइन को पकड़ने के लिए मुख्य में प्रयास/पकड़ का कारण बन जाएगा। हम उन्हें "असाधारण त्रुटियों" के लिए भी व्यापक रूप से उपयोग करते हैं, यानी यदि हमें किसी ज्ञात डेटास्ट्रीम में प्रारूप खराब लगता है, तो हम इसे एक अपवाद पढ़ रहे हैं जो उच्च स्तरीय लॉगिंग "खराब मैज" –

उत्तर

2

प्रश्न (सर्वोत्तम प्रथाओं) के पहले भाग के संबंध में, मानक संदर्भ "असाधारण सी ++: 47 इंजीनियरिंग पहेलियाँ, प्रोग्रामिंग समस्याएं और समाधान" का हिस्सा हैबब सटर द्वारा "अपवाद-सुरक्षा मुद्दे और तकनीक" का हिस्सा है।

सी ++ 11 भाग को संबोधित करते - निम्नलिखित संदर्भ उपयोगी हो सकता है:

न्यू अपवाद विशिष्ट सुविधाओं जोड़ा गया है:

http://www2.research.att.com/~bs/C++0xFAQ.html#rethrow

http://www2.research.att.com/~bs/C++0xFAQ.html#noexcept

यहां तक ​​कि दूसरे से असंबद्ध लगने विशेषताएं वास्तव में बहुत से संबंधित हैं जहां तक ​​उनके अनुप्रयोग जाते हैं: "unique_ptr के उपयोगों में गतिशील रूप से आवंटित करने के लिए अपवाद सुरक्षा प्रदान करना शामिल है घ स्मृति [...] " http://www2.research.att.com/~bs/C++0xFAQ.html#std-unique_ptr

अपवाद विनिर्देशों के अमान्य हो: http://herbsutter.com/2010/03/13/trip-report-march-2010-iso-c-standards-meeting/

संबंधित मुद्दे