हम जावा में कस्टम अपवाद कैसे बना सकते हैं?जावा में कस्टम अपवाद कैसे बनाएं?
उत्तर
एक आप java.lang.Exception
का एक उपवर्ग (या उपवर्गों के पदानुक्रम) बनाने अपवाद जाँच परिभाषित करने के लिए। उदाहरण के लिए:
public class FooException extends Exception {
public FooException() { super(); }
public FooException(String message) { super(message); }
public FooException(String message, Throwable cause) { super(message, cause); }
public FooException(Throwable cause) { super(cause); }
}
तरीके है कि संभावित फेंक या प्रचार इस अपवाद यह घोषित करना चाहिए कर सकते हैं:
public void calculate(int i) throws FooException, IOException;
... और कोड इस विधि बुला या तो संभाल या इस अपवाद का प्रचार (या दोनों) करना होगा:
try {
int i = 5;
myObject.calculate(5);
} catch(FooException ex) {
// Print error and terminate application.
ex.printStackTrace();
System.exit(1);
} catch(IOException ex) {
// Rethrow as FooException.
throw new FooException(ex);
}
ऊपर दिए गए उदाहरण है कि IOException
पकड़ लिया और FooException
रूप rethrown में ध्यान देंगे। यह अपवादों को समाहित करने के लिए उपयोग की जाने वाली एक आम तकनीक है (आमतौर पर जब एपीआई लागू होती है)।
कभी-कभी ऐसी परिस्थितियां भी होंगी जहां आप प्रत्येक विधि को अपने फेंकने वाले खंड में अपवाद कार्यान्वयन की घोषणा नहीं करना चाहते हैं। इस मामले में आप अनचेक अपवाद बना सकते हैं। एक अनियंत्रित अपवाद किसी भी अपवाद है कि java.lang.RuntimeException
फैली (जो अपने आप java.lang.Exception
का एक उपवर्ग है):
public class FooRuntimeException extends RuntimeException {
...
}
तरीके फेंक या यह घोषित करने के बिना FooRuntimeException
अपवाद का प्रचार कर सकते हैं; जैसे
public void calculate(int i) {
if (i < 0) {
throw new FooRuntimeException("i < 0: " + i);
}
}
अनियंत्रित अपवाद आम तौर पर एक विधि को गलत तर्क गुजर या किसी सरणी सूचकांक सीमा का उल्लंघन करने का प्रयास कर उदाहरण के लिए एक प्रोग्रामर त्रुटि निरूपित करने के लिए उपयोग किया जाता है।
java.lang.Throwable
कक्षा सभी त्रुटियों और अपवादों की जड़ है जो जावा के भीतर फेंक दी जा सकती हैं। java.lang.Exception
और java.lang.Error
Throwable
दोनों के उप-वर्ग हैं। Throwable
उपखंड जो कुछ भी फेंक दिया या पकड़ा जा सकता है। हालांकि, यह आमतौर पर Error
को पकड़ने या फेंकने के लिए खराब अभ्यास है क्योंकि इसका उपयोग जेवीएम में आंतरिक त्रुटियों को इंगित करने के लिए किया जाता है जिसे प्रोग्रामर द्वारा आमतौर पर "संभाला" नहीं जा सकता है (उदा। OutOfMemoryError
)। इसी प्रकार आपको Throwable
को पकड़ने से बचना चाहिए, जिसके परिणामस्वरूप आप Error
एस Exception
एस के अलावा प्राप्त कर सकते हैं।
:
public class MyCustomException extends Exception { }
तकनीकी तौर पर, कुछ भी है कि Throwable
फैली एक फेंक दिया हो सकता है, लेकिन आम तौर पर अपवाद Exception
वर्ग के एक्सटेंशन रहे हैं ताकि वे जांचे हुए अपवादों (RuntimeException या वर्गों को छोड़कर के आधार पर कर रहे हैं यह, जो चेक नहीं किए जाते हैं), अन्य सामान्य प्रकार के फेंकने योग्य, Error
एस के विपरीत जो आम तौर पर जेवीएम आंतरिक से परे सुन्दर तरीके से संभाले जाने के लिए डिज़ाइन नहीं किए गए हैं।
आप गैर-सार्वजनिक अपवाद भी बना सकते हैं, लेकिन फिर आप उन्हें पैकेज में उपयोग कर सकते हैं जो उन्हें परिभाषित करता है, जैसा कि पूरे पैकेज के विपरीत है।
जहाँ तक फेंकने/कस्टम अपवाद को पकड़ने के रूप में, यह सिर्फ निर्मित लोगों की तरह काम करता है - के माध्यम से
throw new MyCustomException()
फेंक और के रूप में के माध्यम से इसे
catch (MyCustomException e) { }
रनटाइम अपवाद अपवाद बढ़ाता है और चेक अपवाद नहीं है। – Adamski
तकनीकी रूप से, जो भी 'थ्रोबल' बढ़ाता है उसे * फेंक दिया जा सकता है *; अपवाद 'अपवाद' का विस्तार करते हैं। थ्रोबल का एक कस्टम उप-वर्ग 'try {...} पकड़ (अपवाद ई) {...} 'ब्लॉक द्वारा पकड़ा नहीं जाएगा। –
लोग इस उत्तर को क्यों उखाड़ रहे हैं? इसमें कुछ त्रुटियां हैं। 1) आप * इम्प्लेमेनेट * फेंकने योग्य नहीं कर सकते क्योंकि यह एक इंटरफ़ेस है। 2) कुछ भी जो * * फेंकने योग्य * ** ** एक अपवाद नहीं है ('त्रुटि 'अपवाद नहीं है, यह एक त्रुटि है)। 3) इसका तात्पर्य है कि अपवाद के किसी भी उप-वर्ग की जांच की जाती है जबकि रनटाइम अपवाद नहीं है। एडमस्की द्वारा दिए गए उत्तर अधिक सटीक हैं! –
public class MyException extends Exception {
// special exception code goes here
}
फेंक पकड़ने:
throw new MyException ("Something happened")
इस प्रकार पकड़ें:
catch (MyException e)
{
// something
}
- 1. कस्टम सी # अपवाद कैसे बनाएं?
- 2. जावा में चेक/अनचेक किए गए कस्टम अपवाद कैसे बनाएं?
- 3. जावा में कस्टम एनोटेशन कैसे बनाएं?
- 4. सी एक्सटेंशन में कस्टम पायथन अपवाद प्रकार कैसे बनाएं?
- 5. जावा - एक कस्टम संवाद बॉक्स कैसे बनाएं?
- 6. JavaFX में कस्टम लोडिंग स्क्रीन कैसे बनाएं?
- 7. कस्टम घटनाएं कैसे बनाएं?
- 8. कस्टम कीबोर्ड कैसे बनाएं
- 9. कस्टम जेवीएम कैसे बनाएं?
- 10. क्लोजर में कस्टम अपवाद?
- 11. कस्टम निपटने अपवाद - जावा वेब सेवा
- 12. कस्टम अपवाद
- 13. जावास्क्रिप्ट में कस्टम ऑब्जेक्ट्स कैसे बनाएं?
- 14. एंड्रॉइड में कस्टम वेबव्यू कैसे बनाएं?
- 15. app.config में कस्टम कॉन्फ़िगरेशन अनुभाग कैसे बनाएं?
- 16. कस्टम नियंत्रण में बाइंडेबल कमांड कैसे बनाएं?
- 17. वर्डप्रेस में एक कस्टम पेज कैसे बनाएं?
- 18. आईफोन ऐप में कस्टम UIAlertView कैसे बनाएं
- 19. नेटबीन्स टूलबार में कस्टम बटन कैसे बनाएं?
- 20. Wx में कस्टम बटन कैसे बनाएं?
- 21. एंड्रॉइड एप्लिकेशन में कस्टम कैलेंडर कैसे बनाएं?
- 22. आईओएस में कस्टम बटन कैसे बनाएं?
- 23. कस्टम अपवाद बनाएं या अंतर्निहित अपवादों का उपयोग करें?
- 24. कस्टम सत्यापन विशेषता कैसे बनाएं?
- 25. कस्टम ईमेल शीर्षलेख कैसे बनाएं
- 26. कस्टम टेक्स्ट व्यू कैसे बनाएं?
- 27. कस्टम खाता बनाएं एंड्रॉइड
- 28. कस्टम अपवाद फेंक दिया गया है अगर कस्टम अपवाद
- 29. कस्टम अपवाद प्रकार
- 30. कस्टम अपवाद फेंक
यह ओओ भाषाओं में उपयोग की जाने वाली वही पद्धति है: आधार अपवाद वर्ग का विस्तार करें। – NDM
देखें http://stackoverflow.com/questions/1070590/how-can-i-write-an-exception-by-myself – demongolem