2014-09-02 7 views
5

क्या कोई स्पष्ट रूप से जावा अपवाद हैंडलिंग में फेंकने और फेंकने के बीच अंतर बता सकता है? मैंने googling की कोशिश की है लेकिन एक निष्कर्ष पर नहीं पहुंच सका। Pls मददजावा में फेंकने और फेंकने के बीच अंतर?

+2

यह सामान्य अंग्रेजी है। यही है ना ? –

+0

@ सुरेश एटा बहुत मजेदार – user3527594

उत्तर

32
  1. throws खंड एक अपवाद घोषित करने के लिए प्रयोग किया जाता है और throw कीवर्ड स्पष्ट रूप से एक अपवाद फेंकने के लिए प्रयोग किया जाता है।

  2. यदि हम वाक्यविन्यास के अनुसार throw देखते हैं तो एक आवृत्ति चर और throws के बाद अपवाद वर्ग नाम होते हैं।

  3. कीवर्ड throw एक अपवाद को लागू करने की विधि शरीर के अंदर प्रयोग किया जाता है और throws खंड विधि घोषणा (हस्ताक्षर) में प्रयोग किया जाता है।

उदाहरण

फेंक

throw new Exception("You have some exception") 
throw new IOException("Connection failed!!") 

के लिए फेंकता

public int myMethod() throws IOException, ArithmeticException, NullPointerException {} 
  1. आप mult की घोषणा नहीं कर सकते हैं throw के साथ कई अपवाद। आप कई अपवाद घोषित कर सकते हैं उदा। सार्वजनिक शून्य विधि() IOException, SQLException फेंकता है।

  2. चेक अपवादों को केवल throw के साथ प्रचारित नहीं किया जा सकता क्योंकि यह स्पष्ट रूप से एक विशेष अपवाद फेंकने के लिए उपयोग किया जाता है। चेक अपवाद throws के साथ प्रचारित किया जा सकता है।

अपवाद प्रचार: एक अपवाद विधि से विधि के लिए, ऊपर कॉल स्टैक, प्रसारित जब तक यह पकड़ लिया गया। तो यदि कोई() कॉल बी() कहता है, जो c() को कॉल करता है, जो डी() को कॉल करता है, और यदि डी() डी अपवाद को फेंकता है, तो अपवाद डी से सी से बी तक फैल जाएगा, जब तक कि इनमें से कोई भी तरीका कैच नहीं करता अपवाद। वास्तविक Exception और throws फेंकने के लिए what is exception propagation?

+1

उत्तर के लिए धन्यवाद – user3527594

+1

जावा में थ्रो कीवर्ड का उपयोग करके आप एक से अधिक अपवाद नहीं फेंक सकते हैं लेकिन फेंकने से आप कई अपवाद घोषित कर सकते हैं। गलती को इंगित करने के लिए – hitesh141

5

throw उपयोग विधि में घोषित यह Exception फेंकता है हो सकता है।

public int findMax(int[] array) throws Exception{ 
    if(array==null) 
     throw new NullPointerException(...); 
    ... 
} 
+1

धन्यवाद ... –

0
public void someMethod(List<Foo> someList) throws SomeException { 
    if (someList.isEmpty()) throw new SomeException(); 
} 
संबंधित मुद्दे