2012-03-15 15 views
5
public class ThrowException { 
    public static void main(String[] args) { 
     try { 
      foo(); 
     } 
     catch(Exception e) { 
      if (e instanceof IOException) { 
       System.out.println("Completed!"); 
      } 
      } 
    } 
    static void foo() { 
     // what should I write here to get an exception? 
    } 
} 

हाय! मैंने अभी अपवाद सीखना शुरू कर दिया है और एक एक्सपेटन पकड़ने की जरूरत है, तो कृपया कोई मुझे समाधान प्रदान कर सकता है? मैं बहुत आभारी रहूंगा। धन्यवाद!IOException को कैसे फेंकना है?

+0

क्या 'foo' है और कैसे यह' A' से संबंधित है? –

+1

यह केवल मूल जावा वाक्यविन्यास है कि जावा के लिए कोई पुस्तक या परिचय आपको सिखाएगा। मैं कुछ पढ़ने का सुझाव देता हूं। – ColinD

उत्तर

15
static void foo() throws IOException { 
    throw new IOException("your message"); 
} 
+0

क्या मुझे इसे foo विधि में लिखना चाहिए? –

+0

हां। यदि यह लाइन एक अपवाद पर पहुंचा है तो फेंक दिया जाएगा। –

+1

ध्यान दें कि अपवाद फेंकने के लिए foo विधि घोषित की जानी चाहिए। अन्यथा आपको एक कंपाइलर त्रुटि मिलेगी – ewok

6
try { 
     throw new IOException(); 
    } catch(IOException e) { 
     System.out.println("Completed!"); 
    } 
1

मैं सिर्फ अपवाद सीखने शुरू कर दिया और एक अपवाद

एक अपवाद

throw new IOException("Something happened") 

फेंक को पकड़ने के लिए इस अपवाद बेहतर है नहीं पकड़ने के लिए की जरूरत है Exception bec का उपयोग करें

try { 
    //code that can generate exception... 
}catch(IOException io) { 
    // I know how to handle this... 
} 
1

लक्ष्य foo() विधि से अपवाद फेंक करने के लिए है, तो आप इसे घोषित करने के लिए इस प्रकार की जरूरत है:: ause के लिए बहुत कुछ सामान्य, बजाय, विशिष्ट अपवाद आप जानते हैं कि कैसे संभाल करने के लिए पकड़ है

public void foo() throws IOException{ 
    \\do stuff 
    throw new IOException("message"); 
} 

फिर अपने मुख्य में:

public static void main(String[] args){ 
    try{ 
     foo(); 
    } catch (IOException e){ 
     System.out.println("Completed!"); 
    } 
} 

ध्यान दें कि, जब तक foo एक IOException फेंकने के लिए, को पकड़ने के लिए एक एक संकलक त्रुटि में परिणाम होगा प्रयास कर घोषित किया जाता है। इसे catch (Exception e) और instanceof का उपयोग करके कोडिंग करना संकलक त्रुटि को रोक देगा, लेकिन अनावश्यक है।

0

हो सकता है कि इस मदद करता है ...

नोट क्लीनर रास्ता नीचे दिए गए उदाहरण में अपवाद को पकड़ने के लिए - आप e instanceof IOException जरूरत नहीं है।

public static void foo() throws IOException { 
    // some code here, when something goes wrong, you might do: 
    throw new IOException("error message"); 
} 

public static void main(String[] args) { 
    try { 
     foo(); 
    } catch (IOException e) { 
     System.out.println(e.getMessage()); 
    } 
} 
1

निम्नलिखित कोड का प्रयास करें:

throw new IOException("Message"); 
संबंधित मुद्दे