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

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

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

C++ में, हम किसी भी प्रकार के डेटा को एक्सेप्शन के रूप में थ्रो कर सकते हैं। किसी भी प्रकार के डेटा का अर्थ है प्रिमिटिव डेटाटाइप्स और पॉइंटर्स भी। Java में हम केवल थ्रोएबल ऑब्जेक्ट्स थ्रो कर सकते हैं। किसी भी थ्रोएबल क्लास की सबक्लास भी थ्रोएबल होगी।

उदाहरण

#include <iostream>
using namespace std;

int main() {
    int x = -5;
    try { // संरक्षित कोड
        if (x < 0) {
            throw x;
        }
    }
    catch (int x) {
        cout << "Exception Caught: thrown value is " << x << endl;
    }
    return 0;
}

आउटपुट

Exception Caught: thrown value is -5

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

try {
    // संरक्षित कोड
} catch(...) {
    // किसी भी प्रकार के एक्सेप्शन को पकड़ें
}

उदाहरण

#include <iostream>
using namespace std;

int main() {
    int x = -5;
    char y = 'A';
    try { // संरक्षित कोड
        if (x < 0) {
            throw x;
        }
        if (y == 'A') {
            throw y;
        }
    }
    catch (...) {
        cout << "Exception Caught" << endl;
    }
    return 0;
}

आउटपुट

Exception Caught

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

try {
    // संरक्षित कोड
} catch(Exception e) {
    // किसी भी प्रकार के एक्सेप्शन को पकड़ें
}

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

Java के लिए

उदाहरण

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++ में एक्सेप्शन हैंडलिंग की मूल बातें C++ में एक्सेप्शन हैंडलिंग की मूल बातें

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

  1. - Java में मेथड ओवरराइडिंग के साथ Exception Handling

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

  1. - Java एक्सेप्शन हैंडलिंग में मास्टरी: एक व्यापक गाइड

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