C ++ में अपवाद हैंडलिंग कैसे लागू करें?

यह आलेख आपको यह समझने में मदद करेगा कि अपवाद प्रदर्शन क्या है और व्यावहारिक प्रदर्शन के साथ C ++ में अपवाद हैंडलिंग को कैसे लागू किया जाए।

अपवाद रन टाइम या कंपाइल टाइम के दौरान असामान्य स्थितियां हैं। c ++ में एक बहुत ही आवश्यक अवधारणा है। यह लेख आपको C ++ में इसके विभिन्न प्रकारों के साथ-साथ अपवाद हैंडलिंग से परिचित कराएगा।

इस लेख में निम्नलिखित बिंदुओं को शामिल किया जाएगा,





तो चलिए हम शुरू करते हैं,

C ++ में अपवाद हैंडलिंग

अपवाद के प्रकार

दो प्रकार के अपवाद हैं,



क्रम अपवाद

यह रन टाइम के दौरान पकड़ा गया एक्सेप्शन है।

संकलन-समय अपवाद



यह संकलन समय के दौरान पकड़ा गया अपवाद है।

C ++ में इस अपवाद हैंडलिंग लेख के साथ आगे बढ़ना,

अपवाद हैंडलिंग क्या है?

त्रुटियां एक कार्यक्रम के सामान्य निष्पादन को बाधित करती हैं। अपवाद हैंडलिंग बहुत आवश्यक है, और यह त्रुटियों या अपवादों को संभालने की प्रक्रिया है। यह सुनिश्चित करता है कि कार्यक्रम का निष्पादन अपवादों से प्रभावित नहीं होता है और धीरे-धीरे कार्यक्रम के निष्पादन के लिए कोई समस्या पैदा किए बिना उन्हें संभालता है।

जब आप अपवाद से निपटने पर विचार करते हैं, तो उसके साथ तीन शब्द जुड़े होते हैं,

प्रयत्न

इस ब्लॉक के अंदर का कोड एक ट्रायल कोड की तरह है, जो एक अपवाद को फेंक सकता है। यह अपवाद कैच ब्लॉक के अंदर पकड़ा गया है।

पकड़

इस ब्लॉक में कोड तब निष्पादित किया जाता है जब कोशिश ब्लॉक में कोड एक अपवाद फेंकता है।

फेंकना

इस कीवर्ड का उपयोग किसी अपवाद का सामना करने के लिए किया जाता है। अपवाद हैंडलर को अपवाद भेजा जाता है।

वाक्य - विन्यास:

कोशिश ब्लॉक के अंदर कोड निष्पादित किया गया है। यदि कोई त्रुटि उत्पन्न होती है, तो कीवर्ड थ्रो अपवाद हैंडलर को पकड़ता है, अर्थात् कैच ब्लॉक। कैच ब्लॉक ने फिर कोड निष्पादित किया, जो इसके ब्लॉक के अंदर है, इस प्रकार अपवाद को संभालना।

आइए c ++ में अपवाद हैंडलिंग के लिए नमूना कोड पर एक नज़र डालें

नमूना कोड

नेमस्पेस std try का प्रयोग करके #include {// कोड फॉर थ्रो & ldquoexception & rdquo} कैच (अपवाद) {// कोड फॉर कैच} int main () {int x = 1 try {cout<< 'Try Block: '<

आउटपुट:

आउटपुट - C ++ - Edureka में अपवाद हैंडलिंग

स्पष्टीकरण

यह कार्यक्रम अपवाद हैंडलिंग को दर्शाता है। हमारे पास एक चर x है, जिसे 1 का मान दिया गया है। फिर हमारे पास कोशिश ब्लॉक की शुरुआत है। इस ब्लॉक में, हमारे पास एक स्टेटमेंट है जिसमें एक्स की स्थिति है<10.

हमारे मामले में, स्थिति सही है क्योंकि x एक है। कार्यक्रम फिर एक अपवाद फेंकता है और नियंत्रण ब्लॉक को पकड़ने के लिए बदल जाता है। हम कैच भाग में स्थिति को निष्पादित करते हैं और ब्लॉक से बाहर निकलते हैं।

पकड़ (...) {लागत<< 'Default Exceptionn'<

अंतिम, हम कैच ब्लॉक और एक्जिट प्रोग्राम के बाद शेष कथनों को निष्पादित करते हैं।

कई कैच स्टेटमेंट हो सकते हैं, संभावित अपवादों की संख्या के आधार पर।

C ++ में इस अपवाद हैंडलिंग लेख के साथ आगे बढ़ना,

पकड़ में विफलता

पिछले प्रोग्राम पर विचार करें, अगर x के बजाय थ्रो कीवर्ड “ABC” फेंकता है, तो कैच फ़ंक्शन इसे हैंडल नहीं कर पाएगा। यह एक त्रुटि दिखाएगा,

हमारे पास हो सकता है कि हमारा जीता हुआ त्रुटि संदेश ऐसे मामले में प्रदर्शित हो।

इसे हल करने के लिए, हमें ऐसे मुद्दों को संभालने के लिए कोड में एक डिफ़ॉल्ट कैच फ़ंक्शन को जोड़ना होगा।

# नामस्थान std int main () {int x = 1 try {cout का उपयोग कर निकालें<< 'Try Block: '<

आउटपुट:

स्पष्टीकरण:

यह कोड पिछले एक के समान है। एकमात्र बदलाव यह है कि फेंका गया अपवाद प्रकार चार का है। इससे हमारे कैच फंक्शन बेकार हो जाते हैं। इसलिए हमने एक डिफ़ॉल्ट कैच फ़ंक्शन को शामिल किया है।

यदि कोई भी कैच स्टेटमेंट मेल नहीं खा रहा है, तो डिफॉल्ट कैच निष्पादित किया जाता है।

एकाधिक पकड़ ब्लॉक

एक एकल प्रयास ब्लॉक के कई कैच ब्लॉक हो सकते हैं।

यहाँ एक उदाहरण है,

नेमस्पेस std int टेस्ट (int a) {try {if (a<0) throw a else throw 'a' }catch(int a){ cout<<'Caught an integer: ' << a<

आउटपुट:

स्पष्टीकरण:

उपरोक्त कोड में, हम कई कैच स्टेटमेंट का उपयोग करते हैं। हमारे पास एक फ़ंक्शन परीक्षण है जो एक अपवाद उत्पन्न करता है। पहले परीक्षण के मामले में, मान 10 है। चूंकि 10 शून्य से अधिक है, इसलिए 'ए' चरित्र को फेंक दिया जाता है और इसे दूसरे कैच फ़ंक्शन द्वारा पकड़ा जाता है।

दूसरे मामले में, मान 0 से कम है, इसलिए मान -1 फेंक दिया जाता है और यह पूर्णांक अपवाद द्वारा पकड़ा जाता है

बेस और व्युत्पन्न वर्ग में अपवाद हैंडलिंग:

यदि आधार और व्युत्पन्न वर्ग अपवादों को पकड़ा जाता है, तो आधार वर्ग से पहले व्युत्पन्न वर्ग की पकड़ को निष्पादित किया जाना चाहिए।

यहाँ कुछ अपवाद हैं:

linux व्यवस्थापक भूमिकाएँ और जिम्मेदारियाँ
  • एसटीडी :: अपवाद

  • लॉजिक_रोर

  • रनटाइम त्रुटि

  • bad_alloc

  • bad_cast

  • ख़राब_बोध

इसके साथ ही हम इस ब्लॉग के अंत में In C ++ में एक्सेप्शन हैंडलिंग ’पर आते हैं। मुझे आशा है कि आपको यह जानकारीपूर्ण और उपयोगी लगा, इसी तरह के विषयों पर अधिक ट्यूटोरियल के लिए बने रहें। आप हमारे प्रशिक्षण कार्यक्रम को देख सकते हैंo अपने विभिन्न अनुप्रयोगों के साथ jQuery पर गहराई से ज्ञान प्राप्त करें, आप कर सकते हैं 24/7 समर्थन और आजीवन पहुंच के साथ लाइव ऑनलाइन प्रशिक्षण के लिए।

क्या आप हमसे कोई प्रश्न पूछना चाहते हैं? उन्हें इस ब्लॉग के टिप्पणी अनुभाग में उल्लेख करें और हम आपके पास वापस आ जाएंगे।