Throwable, Exception, RuntimeException, Error In Hindi
जावा प्रोग्रामिंग में यूजर डिफाइन एक्सेप्शन हैंडलिंग Throwable क्लास पर कम्प्लीटली डिपेंड या बेस्ड है, जो की एक कस्टम जनरेटेड एक्सेप्शन हायरार्की रूट का स्ट्रक्चर है। जावा प्रोग्रामिंग में सभी प्रकार के कस्टम जनरेटेड यूजर एक्सेप्शन और प्रोग्राम एरर, Throwable सबक्लास के एलिमेंट या फीचर्स हैं। जावा में Throwable क्लास को दो मैन ब्रांच में डिवाइड किया गया हैं, जिसमे फर्स्ट एक्सेप्शन और सेकंड एरर क्लास के रूप में डिफाइन है।

So, let’s take a closer look at the Throwable class and their relationship in Java.
Throwable Class in Java.
जावा लाइब्रेरी में बिल्ट-इन Throwable क्लास, जावा प्रोग्रामिंग में सभी यूजर डिफाइन कस्टम एरर और एक्सेप्शन का सुपरक्लास बेस्ड है। यहाँ Throwable क्लास को दो प्राइमरी सबक्लास में डिफाइन किया गया हैं. जिसे एरर और एक्सेप्शन क्लास के रूप में जाना जाता है।
Java Throwable Class Hierarchy Structure.
- याद रहे जावा में Throwable क्लास, Error और Exception दोनों के एक पैरेंट क्लास के रूप में डिफाइन है।
- जिसमे की बाकी सभी एरर और एक्सेप्शन सबक्लास चेक और अनचेक दोनों प्रकार के फाइनली Throwable पैरेंट क्लास को आगे एक्सटेंड करते हैं।
Main methods of the Java Throwable class.
- getMessage() – यह मौजूदा प्रोग्राम जनरेटेड एक्सेप्शन या यूजर डिफाइन एरर के बारे में एक डिटेल्ड मैसेज इनफार्मेशन को प्रोवाइड करता है।
- printStackTrace() – यह मौजूदा प्रोग्राम में एक स्टैक ट्रेस इनफार्मेशन को प्रिंट करता है, जो की मौजूदा प्रोग्राम एक्सेप्शन या एरर डीबगिंग प्रोसेस के लिए अधिक यूज़फुल है।
- toString() – यह मौजूदा जावा प्रोग्राम में यूजर डिफाइन प्रोग्राम एक्सेप्शन या एरर मैसेज का एक स्ट्रिंग डिस्क्रिप्शन प्रोवाइड करता है।
Java Throwable class Exception Illustration.
public class ThrowableExceptionIllustration {
public static void main(String[] args) {
try {
throw new Exception(“Custom user generated throwable Exception”);
} catch (Throwable t) {
System.out.println(t.toString());
t.printStackTrace();
}
}
}
Exception Class in Java.
जावा प्रोग्रामिंग में Exception, Throwable पैरेंट क्लास एक सबक्लास के रूप में डिफाइन है। यह जरूरत पड़ने पर जावा प्रोग्राम में एक्सेप्शनल कंडीशन को रिप्रेजेंट करता है. जिन्हें मौजूदा जावा प्रोग्राम में कैच या हैंडल किया जाना चाहिए। जिसमे Exception क्लास सभी चेक्ड एक्सेप्शन के लिए सुपरक्लास के रूप में डिफाइन है, और इसके कई सबक्लास भी हो सकते हैं।
Types of the Java Exception Class.
Checked Exception – जावा प्रोग्राम में चेक्ड एक्सेप्शन ऐसे प्रोग्राम एक्सेप्शन होते हैं, जिन्हें जावा कंपाइलर इंडीकेट करता है कि जावा यूजर इसे क्लियर आर्डर में हैंडल या मैनेज करें। ये जावा में यूजर डिफाइन Exception के सबक्लास एलिमेंट होते हैं. लेकिन इसमें RuntimeException नहीं होती है।
- Example – IOException, SQLException, ClassNotFoundException, etc
Unchecked Exception – जावा प्रोग्राम में अनचेक्ड एक्सेप्शन ऐसे प्रोग्राम एक्सेप्शन होते हैं, जिन्हें मैन्युअल रूप से जावा प्रोग्रामर को हैंडल या मैनेज करने की आवश्यकता नहीं होती है। ये जावा प्रोग्राम में RuntimeException के सबक्लास एलिमेंट होते हैं, और सामान्य रूप से ये मौजूदा प्रोग्रामिंग में किसी बग या ऐसी लॉजिक या कंडीशन को रिप्रेजेंट करते हैं. जिनसे बाद में रिकवर करना अधिक डिफिकल्ट होता है।
- Example – NullPointerException, IndexOutOfBoundsException, IllegalArgumentException, etc
Example of a checked exception/IOException in Java.
import java.io.*;
public class CheckedExceptionIllustration {
public static void main(String[] args) {
try {
FileReader reader = new FileReader(“notexist.txt”);
} catch (IOException e) {
System.out.println(“here we can caught IOException – ” + e.getMessage());
}
}
}
Example of an unchecked exception/NullPointerException in Java.
public class UncheckedExceptionIllustration {
public static void main(String[] args) {
String str1 = null;
try {
System.out.println(str1.length()); // here This will throw a NullPointerException in active program
} catch (NullPointerException e) {
System.out.println(“here we can Caught NullPointerException – ” + e.getMessage());
}
}
}
RuntimeException class in Java.
जावा प्रोग्रामिंग में RuntimeException, जावा Exception के एक सबक्लास के रूप में डिफाइन है, और ये प्रोग्राम में अनचेक्ड एक्सेप्शन के कलेक्शन का एक बिल्ट-इन हिस्सा है। याद रहे, जावा प्रोग्राम में यूजर डिफाइन अनचेक्ड एक्सेप्शन को प्रोग्राम सोर्स कोड में क्लियर आर्डर में हैंडल या मैनेज करने की आवश्यकता नहीं होती है, और ये किसी प्रोग्राम में सामान्य रूप से प्रोग्रामिंग कॉमन इश्यूज या मिस्टेक्स की वजह से जनरेट होते हैं. जिन्हे किसी प्रोग्राम में फाइंड या सर्च करना थोड़ा काम्प्लेक्स होता है. जैसे, नल पॉइंटर डीरेफरेंस, ऐरे इंडेक्स आउट ऑफ़ बाउंड्स, आदि है।
Unchecked exceptions – जावा प्रोग्राम में अनचेक्ड एक्सेप्शन किसी प्रोग्राम रनटाइम के समय जनरेट या डेवलप होते हैं। जावा में इन अनचेक्ड एक्सेप्शन मेथड के थ्रोज़ क्लॉज़ में डिक्लेयर करने या try-catch ब्लॉक का यूज़ करके कैच करने की आवश्यकता नहीं होती है।
Common Java RuntimeException subclass elements.
- NullPointerException.
- ArithmeticException.
- IndexOutOfBoundsException.
- IllegalArgumentException.
- IllegalStateException.
Example of a Java RuntimeException.
public class RuntimeExceptionIllustration {
public static void main(String[] args) {
int[] array = {9, 4, 7, 8};
try {
System.out.println(array[9]); // here This will throw an ArrayIndexOutOfBoundsException error in program
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println(“here runtime program exeption Caught – ” + e.getMessage());
}
}
}
Here in this example.
- यहाँ मौजूदा प्रोग्राम में रनटाइम एक्सेप्शन ArrayIndexOutOfBoundsException एक रनटाइम प्रोग्राम एक्सेप्शन को इंडीकेट करता है, और इसे मौजूदा प्रोग्राम में क्लियर आर्डर में कैच या डिक्लेयर करने की आवश्यकता नहीं होती है।
Error Class in Java.
जावा प्रोग्राम में Error एक्सेप्शन, Throwable पैरेंट क्लास के एक सबक्लास के रूप में डिफाइन है, लेकिन इसमें प्रोग्राम एक्सेप्शन के अपोसिट, एरर सामान्य रूप से कोई काम्प्लेक्स प्रोग्राम इश्यूज प्रॉब्लम को इंडीकेट करते हैं. जिन्हें जरूरत पड़ने पर जावा एप्लिकेशन को हैंडल या मैनेज करने की जरूरत नहीं होती है। किसी भी जावा प्रोगाम में प्रोग्राम एरर सामान्य रूप से Java Virtual Machine (JVM) जावा कम्पाइलर अपने आप ही थ्रो करती है, और मौजूदा जावा प्रोग्राम में उन काम्प्लेक्स प्रॉब्लम को डिस्प्ले करती है. जिनसे प्रोग्राम रिकवर नहीं कर सकता है।
Types of Java exception errors.
- OutOfMemoryError – यह एरर जावा प्रोग्राम में तब जनरेट होती है, जब JVM(जावा वर्चुअल मशीन) की अपनी मेमोरी समाप्त हो जाती है।
- StackOverflowError – यह एरर जावा प्रोग्राम में तब जनरेट होती है, जब जावा प्रोग्राम में कॉल स्टैक ओवरफ्लो हो जाता है. जैसे, इनफिनिट रिकर्सन की वजह, आदि।
- VirtualMachineError – यह एरर जावा प्रोग्राम में तब जनरेट होती है, जब JVM में कोई सीरियस कम्प्लेक्स इंटरनल एरर जनरेट होता है।
जावा प्रोग्राम में एरर अनचेक होते हैं, इसका मतलब है कि जावा यूजर को मौजूदा प्रोग्राम में try-catch ब्लॉक का यूज़ कर इन्हे मैन्युअल मैनेज या हैंडल करने की आवश्यकता नहीं है। जावा प्रोग्राम में सामान्य रूप से एक एरर को हैंडल करने की सलाह नहीं दी जाती है. क्योंकि जावा प्रोग्राम एरर किसी प्रोग्राम में कम्प्लेक्स प्रोग्राम इश्यूज लॉजिक या कंडीशन को इंडीकेट करते हैं, जिन्हें किसी भी जावा प्रोग्राम में नॉर्मल एक्सेप्शन हैंडलिंग से इन्हे सॉल्व नहीं किया जा सकता है।
Example of a Java exception error.
public class JavaErrorIllustration {
public static void main(String[] args) {
try {
recursionCall();
} catch (StackOverflowError e) {
System.out.println(“here it can Caught StackOverflowError in program – ” + e.getMessage());
}
}
// here This will cause a StackOverflowError due to infinite recursion program situation
public static void recursionCall() {
recursionCall();
}
}
In this example.
- यहाँ इस प्रोग्राम में रिकर्सिव फंक्शन मेथड recursionCall() से StackOverflowError डिस्प्ले होता है, क्योंकि जावा प्रोग्राम में डिफाइन रिकर्सन फंक्शन हमेशा रन होता रहेगा। इस वजह से JVM यह एरर डिस्प्ले करता है, और यह एरर यूजर डिफाइन catch ब्लॉक में कैच किया जाता है।
