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

Java में printStackTrace() और getMessage() मेथड में क्या अंतर है?


Java में किसी अपवाद (Exception) की डिटेल्स जानने के दो मुख्य तरीके हैं: printStackTrace() मेथड और getMessage() मेथड। दोनों का उपयोग अलग-अलग परिस्थितियों में किया जाता है।

printStackTrace() मेथड

  • यह मेथड java.lang.Throwable क्लास में परिभाषित है और java.lang.Error तथा java.lang.Exception क्लास में विरासत में मिला है।
  • यह अपवाद का नाम, संदेश की प्रकृति और वह लाइन नंबर दिखाता है जहां अपवाद हुआ है।
  • यह स्टैक ट्रेस को सिस्टम एरर आउटपुट (System.err) पर प्रिंट करता है।

उदाहरण

public class PrintStackTraceMethod {
    public static void main(String[] args) {
        try {
            int a[] = new int[5];
            a[5] = 20; // ArrayIndexOutOfBoundsException होगा
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

आउटपुट

java.lang.ArrayIndexOutOfBoundsException: 5
    at PrintStackTraceMethod.main(PrintStackTraceMethod.java:5)

getMessage() मेथड

  • यह मेथड भी java.lang.Throwable क्लास में परिभाषित है और java.lang.Error तथा java.lang.Exception क्लास में विरासत में मिला है।
  • यह केवल अपवाद का संदेश (message) लौटाता है, स्टैक ट्रेस नहीं।
  • इसका रिटर्न टाइप String होता है।

उदाहरण

public class GetMessageMethod {
    public static void main(String[] args) {
        try {
            int x = 1 / 0; // ArithmeticException होगा
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
    }
}

आउटपुट

/ by zero

मुख्य अंतर

विशेषताprintStackTrace()getMessage()
रिटर्न टाइपvoidString
आउटपुटपूरा स्टैक ट्रेस (क्लास नाम, मेथड नाम, लाइन नंबर)केवल एरर मैसेज
उपयोगडीबगिंग के लिए विस्तृत जानकारीयूजर को दिखाने के लिए सरल संदेश
आउटपुट स्ट्रीमSystem.errप्रोग्रामर तय करता है (System.out, लॉगर, आदि)

निष्कर्ष: printStackTrace() डेवलपर्स के लिए डीबगिंग में सहायक है, जबकि getMessage() एंड-यूजर्स को दिखाने योग्य सरल संदेश देता है।

  1. Java में JTextField और JTextArea में क्या अंतर है? Java में JTextField और JTextArea में क्या अंतर है?

    Java में JTextField और JTextArea के बीच मुख्य अंतर यह है कि एक JTextField GUI एप्लिकेशन में टेक्स्ट की सिंगल लाइन एंटर करने की अनुमति देता है जबकि JTextArea GUI एप्लिकेशन में टेक्स्ट की मल्टीपल लाइन्स एंटर करने की अनुमति देता है। JTextField एक JTextField सबसे महत्वपूर्ण कंपोनेंट्स में से एक है जो

  1. Java में JFrame और JDialog में क्या अंतर है? Java में JFrame और JDialog में क्या अंतर है?

    JFrame फ्रेम में जोड़े गए कंपोनेंट्स को इसकी सामग्री कहा जाता है, इन्हें contentPane द्वारा प्रबंधित किया जाता है। JFrame में कंपोनेंट जोड़ने के लिए, हमें इसके contentPane का उपयोग करना चाहिए। एक JFrame में टाइटल, बॉर्डर, (वैकल्पिक) मेनू बार और यूज़र-स्पेसिफाइड कंपोनेंट्स के साथ एक विंडो होती है। ए

  1. Java में GridLayout और GridBagLayout में क्या अंतर है? Java में GridLayout और GridBagLayout में क्या अंतर है?

    एक GridLayout सभी कंपोनेंट्स को एक आयताकार ग्रिड में रखता है और इसे समान आकार के आयतों में विभाजित करता है और प्रत्येक कंपोनेंट को एक आयत के अंदर रखा जाता है जबकि GridBagLayout एक लचीला लेआउट मैनेजर है जो कंपोनेंट्स को वर्टिकली और हॉरिजॉन्टली संरेखित करता है बिना यह आवश्यकता के कि कंपोनेंट्स समान आक