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() |
|---|---|---|
| रिटर्न टाइप | void | String |
| आउटपुट | पूरा स्टैक ट्रेस (क्लास नाम, मेथड नाम, लाइन नंबर) | केवल एरर मैसेज |
| उपयोग | डीबगिंग के लिए विस्तृत जानकारी | यूजर को दिखाने के लिए सरल संदेश |
| आउटपुट स्ट्रीम | System.err | प्रोग्रामर तय करता है (System.out, लॉगर, आदि) |
निष्कर्ष: printStackTrace() डेवलपर्स के लिए डीबगिंग में सहायक है, जबकि getMessage() एंड-यूजर्स को दिखाने योग्य सरल संदेश देता है।