जावा में तीन प्रकार के अपवाद

त्रुटियाँ उपयोगकर्ताओं और प्रोग्रामर के समान हैं। डेवलपर्स स्पष्ट रूप से अपने कार्यक्रमों को हर मोड़ पर नहीं चाहते हैं और उपयोगकर्ताओं को अब त्रुटियों के लिए उपयोग किया जाता है वे प्रोग्राम जो वे सॉफ्टवेयर के लिए मूल्य का भुगतान करने के लिए स्वीकार करते हैं जो लगभग निश्चित रूप से कम से कम एक त्रुटि होगी यह। जावा प्रोग्रामर को एक त्रुटि-मुक्त एप्लिकेशन डिजाइन करने में खेल का मौका देने के लिए डिज़ाइन किया गया है। अपवाद हैं कि प्रोग्रामर को पता चल जाएगा कि एक संभावना है जब कोई एप्लिकेशन किसी संसाधन या उपयोगकर्ता के साथ बातचीत करता है और इन अपवादों को संभाला जा सकता है। दुर्भाग्य से, ऐसे अपवाद हैं जो प्रोग्रामर को नियंत्रित नहीं कर सकते हैं या बस अनदेखी कर सकते हैं। संक्षेप में, सभी अपवाद समान नहीं बनाए गए हैं और इसलिए एक प्रोग्रामर के बारे में सोचने के लिए कई प्रकार हैं।

एक अपवाद एक घटना है जो कार्यक्रम को उसके इच्छित निष्पादन में प्रवाह करने में असमर्थ होने का कारण बनता है। तीन प्रकार के अपवाद हैं- चेक किए गए अपवाद, त्रुटि और रनटाइम अपवाद।

जाँच की अपवाद

चेक किए गए अपवाद अपवाद हैं जो एक जावा एप्लिकेशन को सामना करने में सक्षम होना चाहिए। उदाहरण के लिए, यदि कोई एप्लिकेशन किसी फ़ाइल से डेटा पढ़ती है तो उसे हैंडल करने में सक्षम होना चाहिए

instagram viewer
FileNotFoundException. आखिरकार, इस बात की कोई गारंटी नहीं है कि अपेक्षित फ़ाइल वही होने वाली है जहाँ उसे माना जाता है। फ़ाइल सिस्टम पर कुछ भी हो सकता है, जिसके बारे में किसी एप्लिकेशन का कोई सुराग नहीं होगा।

इस उदाहरण को एक कदम आगे ले जाने के लिए। मान लीजिए हम उपयोग कर रहे हैं FileReader एक चरित्र फ़ाइल पढ़ने के लिए कक्षा। अगर आप पर नजर है JavaRi में FileReader कंस्ट्रक्टर की परिभाषा आप देखेंगे कि यह विधि हस्ताक्षर है:

सार्वजनिक FileReader (स्ट्रिंग फ़ाइल का नाम) FileNotFoundException को फेंकता है।

जैसा कि आप देख सकते हैं कि कंस्ट्रक्टर विशेष रूप से बताता है कि FileReader कंस्ट्रक्टर एक फेंक सकता है FileNotFoundException. यह समझ में आता है क्योंकि यह अत्यधिक संभावना है कि फ़ाइल का नाम स्ट्रिंग समय-समय पर गलत होगी। निम्नलिखित कोड देखें:

सार्वजनिक स्थैतिक शून्य main (String [] args){ FileReader fileInput = null; // इनपुट फ़ाइल खोलें। fileInput = नया FileReader ("अनटाइटल्ड। टेक्स्ट"); }

सिंथेटिक रूप से कथन सही हैं लेकिन यह कोड कभी संकलित नहीं होगा। संकलक जानता है FileReader कंस्ट्रक्टर एक फेंक सकता है FileNotFoundException और इस अपवाद को संभालने के लिए कॉलिंग कोड पर निर्भर है। दो विकल्प हैं - सबसे पहले हम एक निर्दिष्ट करके अपनी पद्धति से अपवाद पारित कर सकते हैं फेंकता खंड भी:

सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग [] args) FileNotFoundException { FileReader fileInput = null; // इनपुट फ़ाइल खोलें। fileInput = नया FileReader ("अनटाइटल्ड। टेक्स्ट"); }

या हम वास्तव में अपवाद के साथ संभाल सकते हैं:

सार्वजनिक स्थैतिक शून्य main (String [] args){ FileReader fileInput = null; प्रयत्न। { // इनपुट फ़ाइल खोलें। fileInput = नया FileReader ("अनटाइटल्ड। टेक्स्ट"); } पकड़ (FileNotFoundException पूर्व) { // फाइल को खोजने और खोजने के लिए उपयोगकर्ता को बताएं। } }

अच्छी तरह से लिखे गए जावा एप्लिकेशन चेक किए गए अपवादों का सामना करने में सक्षम होना चाहिए।

त्रुटियाँ

दूसरे प्रकार के अपवाद को त्रुटि के रूप में जाना जाता है। जब एक अपवाद होता है JVM एक अपवाद वस्तु बनाएंगे। ये वस्तुएं सभी से प्राप्त होती हैं फेंकने योग्य कक्षा। फेंकने योग्य कक्षा के दो मुख्य उपवर्ग हैं- त्रुटि तथा अपवाद. त्रुटि वर्ग एक अपवाद को दर्शाता है कि एक आवेदन से निपटने में सक्षम होने की संभावना नहीं है।

इन अपवादों को दुर्लभ माना जाता है। उदाहरण के लिए, JVM संसाधनों से बाहर भाग सकता है क्योंकि हार्डवेयर उन सभी प्रक्रियाओं का सामना करने में सक्षम नहीं है जिनके साथ वह निपट रहा है। एप्लिकेशन को उपयोगकर्ता को सूचित करने के लिए त्रुटि को पकड़ना संभव है लेकिन आमतौर पर एप्लिकेशन को बंद करना होगा जब तक कि अंतर्निहित समस्या से निपटा नहीं जाता है।

रनटाइम अपवाद

क्रम अपवाद केवल इसलिए होता है क्योंकि प्रोग्रामर ने एक गलती की है। आपने कोड लिखा है, यह सब संकलक को अच्छा लगता है और जब आप कोड को चलाने के लिए जाते हैं, तो यह खत्म हो जाता है क्योंकि यह किसी ऐसे एरे के तत्व तक पहुँचने की कोशिश की जो मौजूद नहीं है या लॉजिक एरर के कारण एक विधि को अशक्त कहा जा सकता है मूल्य। या प्रोग्रामर कितनी भी गलतियाँ कर सकता है। लेकिन यह ठीक है, हम इन अपवादों को संपूर्ण परीक्षण के द्वारा ठीक करते हैं?

त्रुटियां और रनटाइम अपवाद अनियंत्रित अपवाद की श्रेणी में आते हैं।

instagram story viewer