RuntimeException
कोड में RuntimeExceptions के लिए try/catch ब्लॉक्स अनिवार्य नहीं होते. सही कोडिंग प्रैक्टिस से इन्हें आमतौर पर टाला जा सकता है. लेकिन, जब गलतियाँ पकड़ी नहीं जातीं और RuntimeException अनकॉट रह जाती है, तो एप्लिकेशन फेल हो जाता है और ऐसी समस्या-सूचना दिखाता है जिसे यूज़र हर बार समझ नहीं पाते. इस अभ्यास में, आप देखेंगे कि संभावित RuntimeException को कैच न करने पर क्या होता है, और जब आप उसे try/catch करते हैं तो क्या अंतर पड़ता है.
यह अभ्यास पाठ्यक्रम का हिस्सा है
Java में डेटा टाइप्स और Exceptions
अभ्यास निर्देश
- इस एप्लिकेशन में
withoutTryCatch()औरwithTryCatchमेथड्स को देखें और इनके बीच का अंतर नोट करें. - एप्लिकेशन को बिना कोई बदलाव किए चलाएँ — इससे
withoutTryCatch()मेथड एक्सिक्यूट होगा, जोRuntimeExceptionपैदा करता है. - लाइन 5 को कमेंट करें और लाइन 7 को अनकमेंट करें, फिर एप्लिकेशन दोबारा चलाएँ. इस बार
withTryCatch()मेथड एक्सिक्यूट होगा, जोRuntimeExceptionको हैंडल कर देता है.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
public class RuntimeExceptionHandling {
public static void main(String[] args) {
// Comment out this line
withoutTryCatch();
// Uncomment this line
// withTryCatch();
}
public static void withoutTryCatch() {
String[] mounts = { "Everest", "K2", "Kangchenjunga", "Lhotse" };
String selectedMount = mounts[4];
System.out.println("Selected item is: " + selectedMount);
}
public static void withTryCatch() {
try {
String[] mounts = { "Everest", "K2", "Kangchenjunga", "Lhotse" };
String selectedMount = mounts[4];
System.out.println("Selected item is: " + selectedMount);
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("Oops - made a mistake accessing the mounts array with a bad index.");
}
}
}