Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

C++ में आधार और व्युत्पन्न वर्ग अपवादों को पकड़ना

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

एल्गोरिदम

Begin
   Declare a class B.
   Declare another class D which inherits class B.
   Declare an object of class D.
   Try: throw derived.
   Catch (D derived)
      Print “Caught Derived Exception”.
   Catch (B b)
      Print “Caught Base Exception”.
End.

यहाँ एक सरल उदाहरण है जहाँ व्युत्पन्न वर्ग का कैच बेस क्लास के कैच से पहले रखा गया है, अब आउटपुट की जाँच करें

#include<iostream>
using namespace std;
class B {};
class D: public B {}; //class D inherit the class B
int main() {
   D derived;
   try {
      throw derived;
   }
   catch(D derived){
      cout<<"Caught Derived Exception"; //catch block of derived class
   }
   catch(B b) {
      cout<<"Caught Base Exception"; //catch block of base class
   }
   return 0;
}

आउटपुट

Caught Derived Exception

यहां एक सरल उदाहरण दिया गया है जहां व्युत्पन्न वर्ग के कैच से पहले बेस क्लास का कैच रखा गया है, अब आउटपुट की जांच करें

#include<iostream>
using namespace std;

class B {};
class D: public B {}; //class D inherit the class B
int main() {
   D derived;
   try {
      throw derived;
   }
   catch(B b) {
      cout<<"Caught Base Exception"; //catch block of base class
   }
   catch(D derived){
      cout<<"Caught Derived Exception"; //catch block of derived class
   }
   return 0;
}

आउटपुट

Caught Base Exception
Thus it is proved that we need to put catch block of derived class before the base class. Otherwise, the catch block of derived class will never be reached.

  1. C# में आधार और व्युत्पन्न वर्ग क्या हैं?

    एक वर्ग को एक से अधिक वर्ग या इंटरफ़ेस से प्राप्त किया जा सकता है, जिसका अर्थ है कि यह कई आधार वर्गों या इंटरफेस से डेटा और कार्यों को इनहेरिट कर सकता है। उदाहरण के लिए, निम्नलिखित व्युत्पन्न वर्गों के साथ वाहन आधार वर्ग। Truck Bus Motobike व्युत्पन्न वर्ग बेस क्लास सदस्य चर और सदस्य विधियों को वि

  1. सी # में सहप्रसरण और अंतरविरोध

    कक्षाओं से प्रभावी ढंग से निपटने के लिए, सहप्रसरण और विपरीत विचरण की अवधारणा का उपयोग करें। आइए हम निम्नलिखित को अपना वर्ग मानें। एक कक्षा दो के लिए एक आधार वर्ग है, जबकि दो तीन के लिए एक आधार वर्ग है। class One { } class Two: One { } class Three : Two { } एक आधार वर्ग एक व्युत्पन्न वर्ग धारण

  1. पायथन एक्सेप्शन बेस क्लासेस

    अन्य उच्च-स्तरीय भाषाओं की तरह, अजगर में भी कुछ अपवाद हैं। जब कोई समस्या होती है, तो यह अपवाद उठाता है। विभिन्न प्रकार के अपवाद हैं जैसे ZeroDivisionError, AssertionError आदि। सभी अपवाद वर्ग बेसएक्सप्शन क्लास से प्राप्त होते हैं। कोड अपवादों में बनाया जा सकता है, या हम इन अपवादों को कोड में भी बढ़ा