Exceptions और Errors दोनों Throwable क्लास के सबक्लास हैं। Error एक ऐसी समस्या को इंगित करता है जो मुख्य रूप से सिस्टम रिसोर्सेज की कमी के कारण होती है और हमारे एप्लिकेशन को इस प्रकार की समस्याओं को नहीं पकड़ना चाहिए। Errors के कुछ उदाहरण हैं: सिस्टम क्रैश एरर और आउट ऑफ मेमोरी एरर। Errors ज्यादातर रनटाइम पर होती हैं इसलिए ये अनचेक्ड टाइप से संबंधित होती हैं।
Exceptions वे समस्याएं हैं जो रनटाइम और कंपाइल टाइम दोनों पर हो सकती हैं। यह मुख्य रूप से डेवलपर्स द्वारा लिखे गए कोड में होती हैं। Exceptions को दो श्रेणियों में बांटा गया है: चेक्ड एक्सेप्शन्स और अनचेक्ड एक्सेप्शन्स।
| क्र.सं. | मुख्य बिंदु | Error | Exception |
|---|---|---|---|
| 1 | टाइप | अनचेक्ड टाइप के रूप में वर्गीकृत | चेक्ड और अनचेक्ड दोनों के रूप में वर्गीकृत |
| 2 | पैकेज | यह java.lang.Error से संबंधित है | यह java.lang.Exception से संबंधित है |
| 3 | रिकवरेबल/इरिकवरेबल | यह इरिकवरेबल (अप्राप्य) है | यह रिकवरेबल (प्राप्य) है |
| 4 | घटना का समय | यह कंपाइल टाइम पर नहीं हो सकती | यह रनटाइम और कंपाइल टाइम दोनों पर हो सकती है |
| 5 | उदाहरण | OutOfMemoryError, IOError | NullPointerException, SQLException |
Error का उदाहरण
public class ErrorExample {
public static void main(String[] args) {
recursiveMethod(10);
}
public static void recursiveMethod(int i) {
while(i != 0) {
i = i + 1;
recursiveMethod(i);
}
}
}
आउटपुट
Exception in thread "main" java.lang.StackOverflowError
at ErrorExample.recursiveMethod(ErrorExample.java:42)
Exception का उदाहरण
public class ExceptionExample {
public static void main(String[] args) {
int x = 100;
int y = 0;
int z = x / y;
}
}
आउटपुट
java.lang.ArithmeticException: / by zero
at ExceptionExample.main(ExceptionExample.java:7)
मुख्य अंतर सारांश
- Error: सिस्टम लेवल की गंभीर समस्याएं, एप्लिकेशन द्वारा हैंडल नहीं की जानी चाहिए, अनचेक्ड
- Exception: एप्लिकेशन लेवल की समस्याएं, हैंडल की जा सकती हैं, चेक्ड (कंपाइल टाइम) और अनचेक्ड (रनटाइम) दोनों हो सकती हैं