C++ में अपवादों को आसानी से कैसे संभालें

C Mem Apavadom Ko Asani Se Kaise Sambhalem



प्रोग्राम चलने के दौरान होने वाली अप्रत्याशित घटनाओं को अपवाद या त्रुटियाँ कहा जाता है। अपवाद रनटाइम के दौरान होते हैं, और संकलन के दौरान पकड़े नहीं जा सकते, इसलिए वे प्रोग्राम में गंभीर समस्याएं पैदा कर सकते हैं। C++ प्रोग्राम में अपवादों को अच्छी तरह से संभालना एक प्रोग्रामर के लिए वांछित परिणाम प्राप्त करने का मुख्य उद्देश्य है।

C++ में अपवादों को आसानी से कैसे संभालें

C++ में एक्सेप्शन हैंडलिंग रन-टाइम त्रुटियों का पता लगाने और उन्हें कुशलता से संभालने के तंत्र को संदर्भित करता है, जैसे कि अमान्य इनपुट को संभालना, डिवीजन ऑपरेशंस में किसी संख्या को शून्य से विभाजित करना और भी बहुत कुछ।

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







उदाहरण 1: विभाजन के दौरान अपवाद प्रबंधन

विभाजन के दौरान अपवादों की जांच करने के लिए कोड लिखा गया है।



#शामिल करें
का उपयोग करते हुए नाम स्थान कक्षा ;

int यहाँ मुख्य ( ) {

दोहरा अंश, हर, भाग ;

अदालत << 'एक अंश मान दर्ज करें:' ;
खाना >> मीटर ;

अदालत <> भाजक ;

कोशिश {


अगर ( भाजक == 0 )
फेंक 0 ;


विभाजन = मीटर / भाजक ;
अदालत << मीटर << '/' << भाजक << ' = ' << विभाजन << अंतः ;
}

पकड़ना ( int यहाँ num_exception ) {
अदालत << 'त्रुटि! भाजक नहीं हो सकता ''' << num_exception << अंतः ;
}

वापस करना 0 ;
}

इस प्रोग्राम में, उपयोगकर्ता मुख्य() अनुभाग में घोषित अंश और हर के मान को इनपुट करता है। ट्राई ब्लॉक में, अपवाद की जांच करने के लिए एक if स्टेटमेंट का उपयोग किया जाता है, जो यह बताता है कि हर शून्य है या नहीं। चूंकि विभाजन शून्य भाजक के साथ नहीं किया जा सकता है यदि हर 0 पाया जाता है, तो यह एक अपवाद फेंक देगा और कैच ब्लॉक एक त्रुटि तर्क लौटाएगा अन्यथा सरल विभाजन ऑपरेशन किया जाता है।







उपयोगकर्ता अंश 42 और हर में 0 इनपुट करता है, जो एक अपवाद फेंकता है, इसलिए प्रोग्राम त्रुटि तर्क लौटाता है।



उपयोगकर्ता अंश 42 और 2 को हर के रूप में इनपुट करता है, क्योंकि कोई अपवाद नहीं मिला है, विभाजन के बाद परिणाम वापस आता है।

उदाहरण 2 आयु की जांच करने के लिए अपवाद प्रबंधन

यह प्रोग्राम उपयोगकर्ता की आयु में अपवादों की जाँच करता है।

#शामिल करें
का उपयोग करते हुए नाम स्थान कक्षा ;

/*
यहां, हम अपवाद (अपवाद के रूप में आयु) डालना चाहते हैं यदि व्यक्ति की आयु 18 वर्ष से कम है।
*/

int यहाँ मुख्य ( )
{
// ट्राई ब्लॉक में जांच कर रहा हूं कि उम्र 18 से ज्यादा है या नहीं।
कोशिश
{
int यहाँ आयु ;
अदालत << 'पहुँच के लिए अपनी आयु दर्ज करें:' ;
खाना >> आयु ;

अगर ( आयु >= 18 )
{
अदालत << 'पहुँच दी गई।' ;
}
// यदि आयु 18 वर्ष से कम है तो कस्टम अपवाद डाला जा रहा है।
अन्य
{
फेंक ( आयु ) ;
}
}
// फेंके गए अपवाद को पकड़ना और वांछित आउटपुट प्रदर्शित करना (पहुंच अस्वीकृत!)
पकड़ना ( int यहाँ एक्स )
{
अदालत << 'प्रवेश निषेध! आप कम उम्र के हैं।' << अंतः ;
}
वापस करना 0 ;
}

इस प्रोग्राम में एक पूर्णांक मान वाले वेरिएबल को परिभाषित किया जाता है। उपयोगकर्ता को आयु इनपुट करने और ब्लॉक चेक का प्रयास करने के लिए कहा जाता है यदि उपयोगकर्ता की आयु 18 वर्ष से अधिक या उसके बराबर है। यदि यह सत्य नहीं है तो यह एक अपवाद फेंकता है, और अपवाद ब्लॉक एक्सेस अस्वीकृत लौटा देगा! तर्क। अन्यथा, प्रवेश प्रदान किया जाएगा.

उपयोगकर्ता एक्सेस अनुदान की जांच करने के लिए आयु 12 दर्ज करता है, क्योंकि यह आयु 18 वर्ष से कम है, इसलिए एक्सेस अस्वीकृत तर्क वापस आ जाता है।

उपयोगकर्ता की आयु 20 वर्ष है, क्योंकि यह 18 वर्ष से ऊपर है, इसलिए उपयोगकर्ता को पहुंच प्रदान की जाती है।

टिप्पणी : यदि प्रोग्राम में कोई कैच ब्लॉक नहीं है, तो प्रोग्राम असामान्य रूप से व्यवहार करेगा और अपवादों के मामले में अप्रत्याशित रूप से समाप्त हो जाएगा।

निष्कर्ष

C++ में एक्सेप्शन हैंडलिंग रन-टाइम त्रुटियों का पता लगाने और उन्हें कुशलतापूर्वक संभालने के तंत्र को संदर्भित करता है। इसमें तीन कीवर्ड शामिल हैं प्रयास करें, फेंकें और पकड़ें। ट्राई ब्लॉक में कोड के लिए अपवाद की जाँच की जाती है, यदि पाया जाता है तो थ्रो कीवर्ड अपवाद को फेंक देता है, और कैच ब्लॉक ट्राई ब्लॉक के लिए फेंके गए अपवाद को संभालता है। अपवादों को संभालने से रन-टाइम त्रुटियों से बचकर उपयोगकर्ता का अनुभव सहज और बढ़िया हो जाता है।