जब आप किसी विशेष विधि द्वारा फेंके गए अपवाद (चेक किए गए) को संभालने का प्रयास करते हैं, तो आपको अपवाद का उपयोग करके इसे पकड़ने की आवश्यकता होती है अपवाद का वर्ग या सुपर वर्ग हुआ।
उसी तरह एक सुपर क्लास की विधि को ओवरराइड करते समय, यदि यह एक अपवाद फेंकता है -
-
उप-वर्ग में विधि समान अपवाद या उसके उप प्रकार को फेंकना चाहिए।
-
उप-वर्ग में विधि को अपना सुपर टाइप नहीं फेंकना चाहिए।
-
आप बिना किसी अपवाद के इसे ओवरराइड कर सकते हैं।
जब आपके पास डेमो, सुपरटेस्ट और सुपर इन (पदानुक्रमित) इनहेरिटेंस नामक तीन वर्ग हों, यदि डेमो और सुपरटेस्ट में नमूना () नामक एक विधि है ।
उदाहरण
क्लास डेमो {सार्वजनिक शून्य नमूना () ArrayIndexOutOfBoundsException फेंकता है {System.out.println ("डेमो क्लास का नमूना () विधि"); }}क्लास सुपरटेस्ट डेमो का विस्तार करता है {सार्वजनिक शून्य नमूना() इंडेक्सऑटऑफबाउंड अपवाद फेंकता है {System.out.println ("सुपरटेस्ट क्लास का नमूना() विधि"); }}पब्लिक क्लास टेस्ट सुपरटेस्ट का विस्तार करता है {सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग आर्ग्स []) { डेमो ओबीजे =नया सुपरटेस्ट (); कोशिश करें {obj.sample (); }कैच (ArrayIndexOutOfBoundsException पूर्व) { System.out.println ("अपवाद"); } }}
आउटपुट
सुपरटेस्ट क्लास कीनमूना() विधि
यदि आप जिस वर्ग के साथ अपवाद पकड़ते हैं, वह समान नहीं है या, अपवाद या, उठाए गए अपवाद का सुपर वर्ग है, तो आपको संकलन समय त्रुटि मिलेगी।
उसी तरह, एक विधि को ओवरराइड करते समय फेंका गया अपवाद समान होना चाहिए या, ओवरराइड विधि द्वारा फेंके गए अपवाद का सुपर क्लास अन्यथा एक संकलन समय त्रुटि उत्पन्न होती है।
उदाहरण
आयात करें }}क्लास सुपरटेस्ट डेमो का विस्तार करता है {सार्वजनिक शून्य नमूना () EOFException फेंकता है {System.out.println ("सुपरटेस्ट क्लास का नमूना () विधि"); }}पब्लिक क्लास टेस्ट सुपरटेस्ट का विस्तार करता है {सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग आर्ग्स []) { डेमो ओबीजे =नया सुपरटेस्ट (); कोशिश करें {obj.sample (); }कैच (EOFException पूर्व){ System.out.println ("अपवाद"); } }}आउटपुट
Test.java:12:error:sample() Demopublic void sample() में नमूना ओवरराइड नहीं कर सकता है IOException { ^ ओवरराइड विधि IOException1 errorD:\>javac Test.javaTest.java:20 नहीं फेंकता है:त्रुटि:रिपोर्ट न किए गए अपवाद IOException; पकड़ा जाना चाहिए या फेंक दिया जाना चाहिए obj.sample(); ^1 त्रुटि