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

जावा में एक अपवाद को फेंकने वाली विधि को ओवरराइड करते समय किन नियमों का पालन करना चाहिए?

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

  • जब पैरेंट क्लास मेथड चाइल्ड क्लास मेथड . कोई अपवाद नहीं है कोई भी चेक किया गया अपवाद नहीं फेंक सकता , लेकिन यह कोई भी अनियंत्रित अपवाद . फेंक सकता है ।
क्लास पैरेंट { void doSomething() {// ... }}क्लास चाइल्ड पैरेंट को बढ़ाता है { void doSomething() IllegalArgumentException को फेंकता है {// ...}}
  • जब मूल वर्ग विधि एक या अधिक चेक किए गए अपवाद . फेंकता है , बाल वर्ग विधि कोई भी अनियंत्रित अपवाद फेंक सकता है ।
क्लास पेरेंट {शून्य doSomething () IOException फेंकता है, ParseException {//...} शून्य doSomethingElse () IOException फेंकता है {// ...}} क्लास चाइल्ड पैरेंट को बढ़ाता है {void doSomething() IOException फेंकता है {//। .. } void doSomethingElse () FileNotFoundException, EOFException {//...}}
फेंकता है
  • जब पैरेंट क्लास मेथड एक अनचेक . के साथ एक थ्रो क्लॉज है अपवाद , बाल वर्ग विधि अनचेक अपवाद . में से कोई भी या कोई भी संख्या नहीं फेंक सकता है , भले ही वे संबंधित न हों।
क्लास पैरेंट { void doSomething() IllegalArgumentException फेंकता है {// ...}} क्लास चाइल्ड पैरेंट को बढ़ाता है { void doSomething() थ्रो अरिथमेटिक एक्सेप्शन, BufferOverflowException { // ... }}

उदाहरण

आयात करें }}वर्ग SubClassTest SuperClassTest { public void test() { System.out.println("SubClassTest.test() method"); का विस्तार करता है; }}पब्लिक क्लास ओवरराइडिंग एक्सेप्शनटेस्ट {सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग [] तर्क) {सुपरक्लासटेस्ट एससीटी =नया सबक्लासटेस्ट (); कोशिश करें { sct.test (); } पकड़ें (IOException ioe) { ioe.printStackTrace (); } }}

आउटपुट

SubClassTest.test() विधि

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

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

  1. जावा में एक्सेप्शन क्लास और एरर क्लास में क्या अंतर हैं?

    अपवाद वर्ग और त्रुटि वर्ग दोनों java.lang.Throwable वर्ग के उपवर्ग हैं, हम रनटाइम पर अपवादों को संभालने में सक्षम हो सकते हैं लेकिन त्रुटियों को हम संभाल नहीं सकते हैं। अपवाद वे ऑब्जेक्ट हैं जो रन टाइम पर होने वाली तार्किक त्रुटियों का प्रतिनिधित्व करते हैं और JVM को अस्पष्टता की स्थिति में प्रवेश

  1. जावा विधि को ओवरराइड करने के नियम

    निम्नलिखित नियम हैं जिन पर हमें किसी विधि को ठीक से ओवरराइड करते समय विचार करना चाहिए - तर्क सूची बिल्कुल ओवरराइड विधि के समान होनी चाहिए। रिटर्न प्रकार वही होना चाहिए या सुपरक्लास में मूल ओवरराइड विधि में घोषित रिटर्न प्रकार का उप-प्रकार होना चाहिए। पहुंच स्तर ओवरराइड विधि के पहुंच स्तर से अधिक प्