एक्सेप्शन हैंडलिंग (Exception Handling)

किसी प्रोग्राम को रन करते समय हो सकता है कि बीच में किसी कारणवश एरर (error) आ जाए। इससे हो सकता है कि उस प्रोग्राम का आउटपुट सही न आए या प्रोग्राम बीच में ही बन्द हो जाए। ऐसी स्थिति से बचने के लिए हमें इन ऐरर्स को संभालना होता है, जिसे एरर/एक्सेप्शन हैंडलिंग कहते हैं।

एरर मुख्यतः निम्न दो प्रकार की होती हैं -

  • कम्पाइल टाईम एरर।
  • रन टाईम एरर।

कम्पाइल टाईम एरर

जावा के किसी भी प्रोग्राम में यदि कोई syntax गलत होता है तो कम्पाइलर प्रोग्राम को कम्पाइल करते समय वह एरर प्रदर्षित कर देता है। इस प्रकार की एरर को कम्पाइल टाईम एरर कहते हैं। ऐसी स्थिति में .class फाईल नहीं बनती है। उदाहरण के लिए यदि हमने किसी स्टेटमेंट के अन्त में टर्मिनेटर (;) नहीं लगाया है तो कम्पाइलर इस एरर को प्रदर्षित कर देगा तथा क्लास फाईल नहीं बनाएगा।

कुछ कम्पाइल टाईम एरर निम्न कारणों से आती हैं -

  • टर्मिनेटर (;) नहीं लगाने के कारण।
  • कोष्ठक (bracket) सही स्थान पर नहीं लगाने के कारण।
  • कीवर्ड की स्पेलिंग गलत होने के कारण।
  • किसी स्ट्रिंग में इनवर्टेड कोमा ("---") नहीं होने के कारण।
  • == के स्थान पर = के प्रयोग के कारण आदि।

रन टाईम एरर

इन्हें लाॅजिकल एरर भी कहते हैं। ऐसी स्थिति में प्रोग्राम कम्पाइल तो ठीक तरह से हो जाता है किन्तु उसे रन करने पर विषेष परिस्थितियों में एरर आ जाती है। वास्तव में रन टाइम एरर को हैंडल करना ही एक्सेप्शन हैंडलिंग कहलाता है। यह एरर्स निम्न कारणों से आ सकती है -

  • शून्य से भाग देने पर।
  • किसी array की सीमा से बाहर के element को प्रयोग करने की कोशिश करने पर।
  • किसी मैथड में असंगत पैरामीटर भेजने पर।

नीचे दिए गए उदाहरण में एक रन टाइम एरर (division by zero) आएगी।

class Demo
{
	public static void main(String arr[])
	{
		int x = 10, y = 5, z = 5;
		int a = x / (y - z);	//division by zero
		System.out.println(a);
	}
}

एक्सेप्शन (Exception)

एक्सेप्शन एक ऐसी कण्डीषन होती है जो कि जावा में रन टाईम एरर के कारण उत्पन्न होती है। जब जावा के इन्टरप्रेटर को कोई एरर मिलती है तो वह एक एक्सेप्शन आॅब्जेक्ट बनाकर उसे थ्रो (throw) करता है।

यदि इस एक्सेप्शन आॅब्जेक्ट को सही ढंग से नहीं संभाला जाए तो स्क्रीन पर एक एरर प्रदर्शित होती है तथा प्रोग्राम का ऐग्ज़िक्यूषन बन्द हो जाता है। किसी एक्सेप्शन को सही ढंग से संभालने को एक्सेप्शन हैन्डलिंग कहते हैं। जावा के एक्सेप्शन्स में से कुछ निम्नानुसार हैं -

एक्सेप्शन कस नाम विवरण
ArithmeticException यह गणितिय एरर की वजह से उत्पन्न होते हैं।
ArrayIndexOutOfBoundsException यह एरे के सही इंडेक्स नहीं होने की वजह से उत्पन्न होते हैं।
ArrayStoreException यह एरे में गलत टाईप के डेटा को स्टोर करने की वजह से उत्पन्न होते हैं।
IllegalArgumentException यह किसी मैथड में गलत आरग्यूमेंट का प्रयोग करने से उत्पन्न होते हैं।
NegativeArraySizeException यह एरे का ऋणात्मक साइज़ डिफाइन करने से उत्पन्न होते हैं।
FileNotFoundException यह फाईल नहीं मिलने की वजह से उत्पन्न होते हैं।
IOException यह इनपुट या आउटपुट एरर की वजह से उत्पन्न होते हैं।
NumberFormatException यह स्ट्रिंग को नम्बर में गलत तरीके से परिवर्तित करने के कारण उत्पन्न होते हैं।
ClassNotFoundException यह किसी क्लास के नहीं मिलने पर उत्पन्न होते हैं।
सुझाव / कमेंट