सी++ ट्राई-कैच-आखिरकार

Si Tra I Kaica Akhirakara



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

उदाहरण 1:

यहां 'iostream' शामिल है, हेडर फ़ाइल जिसमें कई फ़ंक्शन घोषित किए गए हैं। हम अपने कोड में इस हेडर फ़ाइल में घोषित इन फ़ंक्शंस का उपयोग करते हैं, इसलिए हम इस हेडर फ़ाइल को शामिल करते हैं। इसके बाद, हमारे पास 'std' है जिसे यहां रखा गया है क्योंकि इसमें 'cin' और 'cout' जैसे फ़ंक्शन भी परिभाषित हैं। यदि हम अपने कोड की शुरुआत में 'नेमस्पेस एसटीडी' जोड़ते हैं तो हमें इन सभी कार्यों के साथ 'एसटीडी' टाइप करने की आवश्यकता नहीं है। इसके बाद, “main()” फ़ंक्शन को यहां लागू किया जाता है जिसे C++ प्रोग्राम का ड्राइवर कोड भी कहा जाता है।

फिर, हम यहां 'कोशिश करें' कीवर्ड का उपयोग करते हैं जिसमें हम '35' मान के साथ 'my_num1' प्रारंभ करते हैं। यह यहाँ 'int' डेटा प्रकार चर है। अब, हम इस वेरिएबल को 'if' के अंदर रखते हैं और एक शर्त रखते हैं जो कहती है कि 'my_num1' को '98' से बड़ा या उसके बराबर होना चाहिए। यदि दी गई शर्त पूरी हो जाती है, तो यह 'if' के अंदर आगे बढ़ता है और यहां लिखे गए कथन को निष्पादित करता है। हम 'काउट' का उपयोग करते हैं और शर्त पूरी होने पर प्रदर्शित करने के लिए एक संदेश डालते हैं।







इसके बाद हम “else” डालने के बाद “throw” कीवर्ड का उपयोग करते हैं। इस 'थ्रो' कीवर्ड में, हम 'my_num1' को पैरामीटर के रूप में पास करते हैं। हम इसके नीचे 'कैच' भाग जोड़ते हैं। हम 'my_num2' को 'कैच ()' के पैरामीटर के रूप में डालते हैं और फिर इस 'कैच' भाग के अंदर फिर से 'काउट' का उपयोग करते हैं। यह भाग तभी निष्पादित होता है जब 'कोशिश' भाग में कोई अपवाद होता है।



कोड 1:



#शामिल करें
का उपयोग करते हुए नाम स्थान कक्षा ;
int यहाँ मुख्य ( ) {
कोशिश {
int यहाँ my_num1 = 35 ;
अगर ( my_num1 >= 98 ) {
अदालत << 'यहां पहुंच प्रदान की गई है।' ;
} अन्य {
फेंक ( my_num1 ) ;
}
}
पकड़ना ( int यहाँ my_num2 ) {
अदालत << 'यहां प्रवेश वर्जित है।' << अंतः ;
अदालत << 'संख्या है: ' << my_num2 ;
}
वापस करना 0 ;
}

आउटपुट:
हमने जो संख्या दर्ज की वह '35' है जो '98' से कम है। तो, अपवाद वहां होता है और 'कैच ()' भाग प्रदर्शित होता है। 'कोशिश' भाग तक पहुंच अस्वीकृत है।





उदाहरण 2:

हम यहां 'iostream' हेडर फ़ाइल और 'नेमस्पेस std' रखते हैं। इसके बाद, हम एक 'डिवीजन ()' फ़ंक्शन बनाते हैं जिसमें हम दो पैरामीटर रखते हैं जो 'इंट' डेटा प्रकार के 'अंश' और 'हर' होते हैं। हम इस 'डिवीजन' फ़ंक्शन के डेटा प्रकार को 'डबल' पर सेट करते हैं।



इसके नीचे, हम 'if()' जोड़ते हैं जिसमें हम यह शर्त जोड़ते हैं कि हर शून्य के बराबर है। इसके बाद हम “throw” कीवर्ड का उपयोग करते हैं और वहां एक संदेश टाइप करते हैं। जब भी इस कोड में शर्त के अनुसार अपवाद होता है तो यह संदेश प्रस्तुत किया जाता है। इसके नीचे, हम 'रिटर्न' कीवर्ड का उपयोग करते हैं जिसमें हम 'अंश/हर' डालते हैं। तो, यह विभाजन का परिणाम लौटाता है। अब, 'मुख्य()' फ़ंक्शन को कॉल किया जाता है।

इसके बाद, 'num1' और 'num2' को 'int' वेरिएबल के रूप में प्रारंभ किया जाता है और उन्हें क्रमशः '89' और '0' असाइन किया जाता है। फिर, हम 'डबल' डेटा प्रकार के 'परिणाम' को प्रारंभ करते हैं। यहां, हम 'कोशिश करें' कीवर्ड का उपयोग करते हैं। इस भाग में, हम इस 'परिणाम' वेरिएबल को जोड़ते हैं और इस वेरिएबल को 'डिवीजन ()' फ़ंक्शन असाइन करते हैं। हम इस फ़ंक्शन में दो पैरामीटर पास करते हैं: 'num1' और 'num2'। इसके नीचे, हम 'परिणाम' प्रदर्शित करते हैं जो हमें 'डिवीजन()' फ़ंक्शन लागू करने के बाद मिलता है। इसके बाद, हम 'कैच' का भी उपयोग करते हैं और जो संदेश हमने पहले जोड़ा था उसे प्रदर्शित करने के लिए 'कॉन्स्ट चार* संदेश' डालते हैं।

कोड 2:

#शामिल करें
का उपयोग करते हुए नाम स्थान कक्षा ;
दोहरा विभाजन ( int यहाँ अंश , int यहाँ भाजक ) {
अगर ( भाजक == 0 ) {
फेंक 'शून्य से विभाजन यहाँ संभव नहीं है!' ;
}
वापस करना ( मीटर / भाजक ) ;
}
int यहाँ मुख्य ( ) {
int यहाँ संख्या 1 = 89 ;
int यहाँ संख्या2 = 0 ;
दोहरा परिणाम = 0 ;
कोशिश {
परिणाम = विभाजन ( अंक1, अंक2 ) ;
अदालत << परिणाम << अंतः ;
} पकड़ना ( कॉन्स्ट चार * एमएसजी ) {
सेर << एमएसजी << अंतः ;
}
वापस करना 0 ;
}

आउटपुट:
जो संख्या हमने पहले हर के रूप में डाली थी वह '0' है। तो, कोड में अपवाद होता है और यह दिए गए संदेश को प्रदर्शित करता है।

उदाहरण 3:

'गुणा ()' फ़ंक्शन यहां बनाया गया है जिसमें हम 'मान' और 'गुणक' को 'int' डेटा प्रकार के पैरामीटर के रूप में रखते हैं। फिर, हम 'यदि' का उपयोग करते हैं जिसमें हम एक गुणक शर्त जोड़ते हैं जो शून्य के बराबर है। फिर, 'थ्रो' को वहां रखा जाता है जहां हम एक कथन जोड़ते हैं। फिर, हमारे पास 'रिटर्न' है जहां हम 'वैल्यू * मल्टीप्लायर' वेरिएबल्स रखते हैं जिन्हें हमने पहले घोषित किया था। तो, यह यहां गुणन परिणाम लौटाता है।

इसके बाद, हम 'मेन()' को कॉल करते हैं जहां हम क्रमशः '34' और '0' के मानों के साथ 'इंट वैल्यू1' और 'इंट वैल्यू2' घोषित करते हैं। 'int m_res' भी घोषित किया गया है और फिर इसे यहां 'गुणा()' फ़ंक्शन कहा जाता है। इस फ़ंक्शन को करने के बाद, परिणाम अब 'm_res' वेरिएबल में सहेजा जाता है और फिर प्रदर्शित किया जाता है। इसके बाद, हम 'कैच' फ़ंक्शन का उपयोग करते हैं और उस संदेश को प्रदर्शित करने के लिए 'कॉन्स्ट चार* संदेश' डालते हैं जिसे हमने पहले 'थ्रो' भाग में जोड़ा था।

कोड 3:

#शामिल करें
का उपयोग करते हुए नाम स्थान कक्षा ;
दोहरा गुणा ( int यहाँ कीमत , int यहाँ गुणक ) {
अगर ( गुणक == 0 ) {
फेंक 'हम मान को शून्य से गुणा नहीं करते हैं!' ;
}
वापस करना ( कीमत * गुणक ) ;
}
int यहाँ मुख्य ( ) {
int यहाँ मान 1 = 3. 4 ;
int यहाँ मान 2 = 0 ;
int यहाँ m_res ;
कोशिश {
m_res = गुणा ( मान1, मान2 ) ;
अदालत << m_res << अंतः ;
} पकड़ना ( कॉन्स्ट चार * एमएसजी ) {
सेर << एमएसजी << अंतः ;
}
वापस करना 0 ;
}

उत्पादन :
चूँकि जो मान हमने पहले दर्ज किया था उसमें गुणक के रूप में '0' है, कोड में एक अपवाद है जिसके कारण नोटिस यहाँ प्रदर्शित होता है।

उदाहरण 4:

यहां, हम 'गुणा ()' फ़ंक्शन बनाते हैं और 'नंबर 1' और 'नंबर 2' को 'इंट' डेटा प्रकार के पैरामीटर के रूप में पास करते हैं। इसके बाद, हम इसमें एक शर्त जोड़ने के लिए 'if' ऑपरेटर का उपयोग करते हैं जो एक गुणक है जो शून्य से कम या उसके बराबर है। उसके बाद, कथन वहाँ जोड़ा जाता है जहाँ 'फेंकना' माना जाता है। गुणन परिणाम फिर 'रिटर्न' अनुभाग में लौटाया जाता है जहां हम 'नंबर 1 * नंबर 2' वेरिएबल डालते हैं जिसे हमने पहले घोषित किया था।

इसके बाद, हम 'मुख्य()' फ़ंक्शन को लागू करते हैं और क्रमशः '34' और '12' मानों को 'int newNumber1' और 'int newNumber2' पर निर्दिष्ट करते हैं। यहां, 'मल्टीप्लाई()' फ़ंक्शन को 'int mResult' की घोषणा के बाद कॉल किया जाता है। अब, इस फ़ंक्शन का परिणाम 'mResult' वेरिएबल में संग्रहीत है और निम्नलिखित में प्रस्तुत किया गया है। फिर हम 'कैच' फ़ंक्शन का उपयोग करते हैं और 'थ्रो' अनुभाग में लिखे गए संदेश को प्रदर्शित करने के लिए 'कॉन्स्ट चार * संदेश' जोड़ते हैं।

कोड 4:

#शामिल करें
का उपयोग करते हुए नाम स्थान कक्षा ;
दोहरा गुणा ( int यहाँ नंबर 1 , int यहाँ नंबर 2 ) {
अगर ( नंबर 2 <= 0 ) {
फेंक 'हम मान को शून्य या ऋणात्मक मान से गुणा नहीं करते हैं!' ;
}
वापस करना ( नंबर 1 * नंबर 2 ) ;
}
int यहाँ मुख्य ( ) {
int यहाँ newNum1 = 3. 4 ;
int यहाँ newNum2 = 12 ;
int यहाँ mपरिणाम ;
कोशिश {
mपरिणाम = गुणा ( न्यूनम1, न्यूनम2 ) ;
अदालत << 'गुणन का परिणाम है' << mपरिणाम << अंतः ;
}
पकड़ना ( कॉन्स्ट चार * एमएसजी ) {
सेर << एमएसजी << अंतः ;
}
वापस करना 0 ;
}

आउटपुट:
जो मान हम जोड़ते हैं वह '12' है जिस पर हम शर्त जोड़ते हैं। इसलिए, 'गुणा ()' फ़ंक्शन निष्पादित किया जाता है क्योंकि स्थिति सत्य नहीं है। गुणन का परिणाम प्रदर्शित होता है. 'कोशिश' भाग यहाँ निष्पादित किया गया है।

निष्कर्ष

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