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

C++ और Java में एक्सेप्शन हैंडलिंग की तुलना

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

C++ में, हम किसी भी प्रकार के डेटा को अपवाद के रूप में फेंक सकते हैं। किसी भी प्रकार के डेटा का अर्थ है आदिम डेटाटाइप और पॉइंटर्स भी। जावा में हम केवल फेंकने योग्य वस्तुओं को फेंक सकते हैं। किसी भी फेंकने योग्य वर्ग के उपवर्ग भी फेंकने योग्य होंगे।

उदाहरण

#include <iostream>
using namespace std;
int main() {
   int x = -5;
   try { //protected code
      if( x < 0 ) {
         throw x;
      }
   }
   catch (int x ) {
      cout << "Exception Caught: thrown value is " << x << endl;
   }
}

आउटपुट

Exception Caught: thrown value is -5

सी ++ में, किसी भी प्रकार के अपवादों को पकड़ने के लिए कैच ऑल नामक एक विकल्प होता है। सिंटैक्स नीचे जैसा है -

try {
   //protected code
} catch(…) {
   //catch any type of exceptions
}

उदाहरण

#include <iostream>
using namespace std;
int main() {
   int x = -5;
   char y = 'A';
   try { //protected code
      if( x < 0 ) {
         throw x;
      }
      if(y == 'A') {
         throw y;
      }
   }
   catch (...) {
      cout << "Exception Caught" << endl;
   }
}

आउटपुट

Exception Caught

जावा में यदि हम किसी भी प्रकार के अपवाद को पकड़ना चाहते हैं, तो हमें अपवाद वर्ग का उपयोग करना होगा। जो जावा में मौजूद किसी एक्सेप्शन का सुपर क्लास है, या कुछ यूजर डिफाइन्ड एक्सेप्शन भी। सिंटैक्स नीचे जैसा है -

try {
   //protected code
} catch(Exception e) {
   //catch any type of exceptions
}

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

जावा के लिए

उदाहरण

public class HelloWorld {
   public static void main(String []args) {
      try {
         int data = 25/5;
         System.out.println(data);
      } catch(NullPointerException e) {
         System.out.println(e);
      } finally {
         System.out.println("finally block is always executed");
      }
      System.out.println("rest of the code...");
   }
}

आउटपुट

5
finally block is always executed
rest of the code...

  1. C++ में एक्सेप्शन हैंडलिंग बेसिक्स

    सी ++ में, अपवाद हैंडलिंग रनटाइम त्रुटियों को संभालने की एक प्रक्रिया है। अपवाद एक घटना है जिसे सी ++ में रनटाइम पर फेंक दिया जाता है। सभी अपवाद std::Exception वर्ग से लिए गए हैं। यह एक रनटाइम त्रुटि है जिसे संभाला जा सकता है। अगर हम अपवाद को हैंडल नहीं करते हैं तो यह अपवाद संदेश को प्रिंट करता है औ

  1. जावा में मेथड ओवरराइडिंग के साथ एक्सेप्शन हैंडलिंग।

    हां, हम निम्नलिखित नियम से संबंधित जावा में केवल अपवाद हैंडलिंग को बदलकर एक विधि को ओवरराइड कर सकते हैं - ओवरराइडिंग विधि किसी भी अनियंत्रित अपवाद को फेंक सकती है, भले ही ओवरराइड विधि अपवादों को फेंके या नहीं। हालांकि, ओवरराइडिंग विधि को चेक किए गए अपवादों को नहीं फेंकना चाहिए जो ओवरराइड विधि द्वार

  1. जावा अपवाद और उन्हें कैसे संभालें

    जावा डेवलपर के रूप में, आपको जावा अपवादों और अपवाद प्रबंधन का अच्छा ज्ञान होना चाहिए। यह ट्यूटोरियल मूल ज्ञान प्रदान करता है जो जावा प्रोग्राम के साथ काम करते समय प्रत्येक प्रोग्रामर के पास होना चाहिए। शुरू करने के लिए, आइए समझते हैं कि वास्तव में जावा अपवाद क्या हैं। Java Exceptions क्या हैं एक ज