java - Error when rethrowing exception -


मुझे एक त्रुटि मिल रही है त्रुटि: (25, 13) java: unreported exception अपवाद A; को पकड़ा जाना चाहिए या घोषित किया जाना चाहिए अपवाद को फिर से खोलने का प्रयास करते समय

मैं अभी भी जावा के लिए नया हूँ और मेरी किताब "पुनर्स्थापित" करने के लिए नीचे का उपयोग करती है, लेकिन मुझे अपवाद को छोड़ने में त्रुटि मिलती है; फिर से शुरू करने का प्रयास करते हुए भी यह सीधे आधारित है पुस्तक से दूर <पूर्व> आयात करें java.io.IOException; सार्वजनिक वर्ग पकड़ने अपवाद {सार्वजनिक स्थिर शून्य मुख्य (स्ट्रिंग एल्ग्स []) {throwExceptionA (); throwExceptionB (); throwNullPointer (); throwIOException (); } पब्लिक स्टेटिक व्हाइड फेंक एक्सपेशेंसी ए () {नए अपवाद को फेंकें (); } पकड़ (अपवाद ए अपवाद) {System.err.printf ("अपवाद:% s \ n", अपवाद); System.err.println ("अपवाद A विधि में निष्कर्ष निकालना A \ n"); अपवाद छोड़ो; }} पब्लिक स्टेटिक व्हाइड थ्रो एक्सपेशियल बी () {नया अपवाद B } पकड़ (अपवाद बी अपवाद) {System.err.printf ("अपवाद:% s \ n", अपवाद); System.err.println ("अपवाद बी को संभालने में विधि throwExceptionB \ n"); }} सार्वजनिक स्थैतिक शून्य निओ पॉइन्टर () {try {NullPointerException () फेंक दें; } पकड़ (NullPointerException अपवाद) {System.err.printf ("अपवाद:% s \ n", अपवाद); System.err.println ("NullPointerException विधि throwNullPointerException में संभाला \ n"); }} सार्वजनिक स्थैतिक शून्य throwIOException () {try new IOException () फेंकें; } पकड़ (IOException अपवाद) {System.err.printf ("अपवाद:% s \ n", अपवाद); System.err.println ("IOException पद्धति में संभाला throwEeception \ n"); जावा में कोई भी तरीका जो चेक कर सकता है

अपवाद को यह घोषित करना चाहिए, इसलिए परिवर्तन करें
  सार्वजनिक स्थिर शून्य खाली एक्सपेक्शन ए ()   

से

  सार्वजनिक स्थिर शून्य रहित एक्सपेक्शन ए () फेंकता अपवाद A   

यह अनचेक किए गए अपवादों के लिए आवश्यक नहीं है।

  • यदि कोई अपवाद चेक या अनचेक किया गया है, तो उस वर्ग पर निर्भर करता है जिसे वह सन्देश से प्राप्त होता है।
    • यदि अपवाद सीधे या अप्रत्यक्ष रूप से (जैसे कि एक वारिस श्रृंखला के माध्यम से) से रनटाइम एक्सपॉशन , इसे अनचेक किया गया माना जाता है और इसे घोषित करने की आवश्यकता नहीं है।
    • अन्य सभी अपवाद (अर्थात इस तरह से प्रत्यक्ष या अप्रत्यक्ष रूप से अपवाद से प्राप्त होता है , लेकिन कभी भी RuntimeException से चेक किया गया नहीं माना जाता है और यदि वे विधि द्वारा फेंका जा सकता है तो उन्हें घोषित करने की आवश्यकता है।

      इस बात को ध्यान में रखते हुए, इन उदाहरणों पर विचार करें:

        सार्वजनिक शून्य फेंकता हैअनुवादित चेक्डएक्सेशन () {// कंपाइलर त्रुटि क्योंकि यह अपवाद घोषित नहीं किया गया है (और पकड़ा नहीं) नया अपवाद फेंकना (); } सार्वजनिक शून्य फेंकता है घोषित किए गए एक्सपेशन्शन () फेंकता अपवाद {// ठीक है, क्योंकि इसे घोषित किया गया था कि नए अपवाद फेंकना (); } सार्वजनिक शून्य पकड़ता हैअनुवादित जाँच (अपवाद) ({नई अपवाद फेंकें}; } पकड़ (अपवाद को नजरअंदाज कर दिया) {// फेंक दिया अपवाद पकड़ा गया है और अब अनदेखा किया गया है, इसलिए विधि / फेंक नहीं सकते और हमें कुछ भी घोषित करने की आवश्यकता नहीं है}} सार्वजनिक शून्य फेंकता है UnclassedRuntimeException () {// ठीक है, क्योंकि यह एक अनचाहे अपवाद नए RuntimeException फेंक (); } सार्वजनिक शून्य फेंकता है घोषित रेंटाइम अपवाद () RuntimeException {// works फेंकता है, लेकिन विधि पर "फेंकता" घोषणा अनावश्यक नई RuntimeException फेंक () है; }   

      आप मतभेदों पर एक चर्चा पा सकते हैं, उदाहरण के लिए,

Comments

Popular posts from this blog

Verilog Error: output or inout port "Q" must be connected to a structural net expression -

jasper reports - How to center align barcode using jasperreports and barcode4j -

c# - ASP.NET MVC - Attaching an entity of type 'MODELNAME' failed because another entity of the same type already has the same primary key value -