जबकि एक सुपरक्लास विधि इसे ओवरराइड करते समय एक अपवाद फेंकती है, आपको कुछ नियमों का पालन करने की आवश्यकता होती है।
समान अपवाद या उप प्रकार फेंकना चाहिए
यदि सुपर-क्लास विधि कुछ अपवाद फेंकती है, तो उप-वर्ग में विधि को उसी अपवाद या उसके उप प्रकार को फेंकना चाहिए।
उदाहरण
निम्नलिखित उदाहरण में, सुपर-क्लास की रीडफाइल () विधि एक 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 (); }}
आउटपुट
उपवर्ग की विधि