Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Java

जावा में मेथड ओवरराइडिंग के संबंध में एक्सेप्शन हैंडलिंग के नियम क्या हैं?

जबकि एक सुपरक्लास विधि इसे ओवरराइड करते समय एक अपवाद फेंकती है, आपको कुछ नियमों का पालन करने की आवश्यकता होती है।

समान अपवाद या उप प्रकार फेंकना चाहिए

यदि सुपर-क्लास विधि कुछ अपवाद फेंकती है, तो उप-वर्ग में विधि को उसी अपवाद या उसके उप प्रकार को फेंकना चाहिए।

उदाहरण

निम्नलिखित उदाहरण में, सुपर-क्लास की रीडफाइल () विधि एक IOEXception को फेंकती है और, उप-वर्ग की रीडफाइल () विधि FileNotFoundException अपवाद को फेंकती है।

चूंकि FileNotFoundException अपवाद IOException का उप प्रकार है, इसलिए यह प्रोग्राम बिना किसी त्रुटि के संकलित और निष्पादित हो जाता है।

आयात करें; }}पब्लिक क्लास ExceptionsExample Super {@Override public String readFile(String path) थ्रो FileNotFoundException { Scanner sc =new Scanner(new File("E://test//sample.txt")); स्ट्रिंग इनपुट; स्ट्रिंगबफर एसबी =नया स्ट्रिंगबफर (); जबकि (sc.hasNextLine ()) {इनपुट =sc.nextLine (); एसबी.एपेंड ("" + इनपुट); } वापसी sb.toString (); } सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग args []) {स्ट्रिंग पथ ="ई://test//sample.txt"; अपवाद उदाहरण ओबीजे =नए अपवाद उदाहरण (); कोशिश करें {System.out.println (obj.readFile (पथ)); }catch(FileNotFoundException e) { System.out.println ("सुनिश्चित करें कि निर्दिष्ट फ़ाइल मौजूद है"); } }}

आउटपुट

ट्यूटोरियल्स पॉइंट एक ई-लर्निंग कंपनी है जो पाठकों के उस वर्ग को ज्ञान प्रदान करने के लिए अपनी यात्रा पर निकली है जो ऑनलाइन सामग्री के लिए बेहतर प्रतिक्रिया देती है। Tutorials Point के साथ, आप अपनी गति से, अपने स्थान पर सीख सकते हैं। Tutorialspoint.com पर सर्वोत्तम शिक्षण सामग्री प्रदान करने की एक सफल यात्रा के बाद, हमने K-12 छात्रों और IIT / JEE जैसी प्रतियोगी परीक्षाओं के उम्मीदवारों के लिए सर्वोत्तम व्यक्तिगत तरीके से सरल आसान शिक्षण प्रदान करने के लिए Tutorix नामक अपना सब्सक्रिप्शन आधारित प्रीमियम उत्पाद बनाया। नीट.

उदाहरण

उसी तरह यदि उप-वर्ग सुपर-क्लास के समान अपवाद फेंकता है तो प्रोग्राम संकलित और सफलतापूर्वक निष्पादित हो जाता है।

आयात करें सुपरक्लास की विधि"); }}पब्लिक क्लास ExceptionsExample Super { public void sampleMethod() थ्रो FileNotFoundException {System.out.println("Method of Subclass"); } सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग args []) {अपवाद उदाहरण obj =नया अपवाद उदाहरण (); obj.sampleMethod (); }}

आउटपुट

उपवर्ग की विधि

सुपर टाइप का अपवाद नहीं फेंकना चाहिए

यदि सुपर-क्लास विधि कुछ अपवाद फेंकती है, तो उप-वर्ग में विधि को अपना सुपर प्रकार नहीं फेंकना चाहिए।

उदाहरण

निम्नलिखित उदाहरण में सुपर-क्लास की रीडफाइल () विधि FileNotFoundException अपवाद को फेंकती है और, उप-वर्ग की रीडफाइल () विधि एक IOException को फेंकती है, जो कि FileNotFoundException का सुपर प्रकार है।

आयात करें; }}पब्लिक क्लास ExceptionsExample सुपर का विस्तार करता है {@Override public String readFile(String path) IOException को थ्रो करता है {//method body ......}}

संकलन समय त्रुटि

संकलन करने पर, उपरोक्त प्रोग्राम आपको निम्न आउटपुट देता है -

ExceptionsExample.java:13:error:readFile(String) in ExceptionsExample सुपर पब्लिक में readFile(String) को ओवरराइड नहीं कर सकता है। 

बिना किसी अपवाद के

यदि सुपर-क्लास विधि कुछ अपवाद फेंकती है, तो आप बिना किसी अपवाद को फेंके इसे ओवरराइड कर सकते हैं।

उदाहरण

निम्नलिखित उदाहरण में सुपर-क्लास की नमूना विधि () विधि FileNotFoundException अपवाद को फेंकती है और, नमूना विधि () विधि किसी भी अपवाद को नहीं फेंकती है। फिर भी यह प्रोग्राम बिना किसी त्रुटि के संकलित और निष्पादित हो जाता है।

आयात करें सुपरक्लास की विधि"); }}पब्लिक क्लास ExceptionsExample सुपर { public void sampleMethod() {System.out.println("Method of Subclass"); } सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग args []) {अपवाद उदाहरण obj =नया अपवाद उदाहरण (); obj.sampleMethod (); }}

आउटपुट

उपवर्ग की विधि

  1. जावा में स्ट्रिंग इंटर्न () विधि की क्या भूमिका है?

    एक स्ट्रिंग जावा में एक वर्ग है जो वर्णों के अनुक्रम को संग्रहीत करता है, यह java.lang से संबंधित है पैकेट। एक बार जब आप एक स्ट्रिंग ऑब्जेक्ट बना लेते हैं तो आप उन्हें (अपरिवर्तनीय) संशोधित नहीं कर सकते। संग्रहण सभी स्ट्रिंग ऑब्जेक्ट्स को हीप क्षेत्र में एक अलग मेमोरी लोकेशन में संग्रहीत किया जाता

  1. जावा में पेंट () विधि और रिपेंट () विधि के बीच अंतर क्या हैं?

    पेंट() और रीपेंट() पेंट (): यह विधि इस घटक को पेंट करने के लिए निर्देश रखती है। जावा स्विंग में, हम पेंट कॉल के रूप में पेंट () विधि के बजाय पेंटकंपोनेंट () विधि को बदल सकते हैं पेंटबॉर्डर (), पेंटकंपोनेंट () और पेंटचिल्ड्रेन () तरीके। हम इस विधि को सीधे कॉल नहीं कर सकते इसके बजाय हम repaint() . क

  1. जावा में मेथड ओवरराइडिंग के साथ एक्सेप्शन हैंडलिंग।

    हां, हम निम्नलिखित नियम से संबंधित जावा में केवल अपवाद हैंडलिंग को बदलकर एक विधि को ओवरराइड कर सकते हैं - ओवरराइडिंग विधि किसी भी अनियंत्रित अपवाद को फेंक सकती है, भले ही ओवरराइड विधि अपवादों को फेंके या नहीं। हालांकि, ओवरराइडिंग विधि को चेक किए गए अपवादों को नहीं फेंकना चाहिए जो ओवरराइड विधि द्वार