आपको एक नई कक्षा बनाना चाहिए जो अपवाद को बढ़ाता है और आपकी त्रुटि के लिए विशिष्ट विवरण प्रदान करता है। उदाहरण के लिए आप EmptyListException नामक एक क्लास बना सकते हैं जिसमें आपकी त्रुटि के बारे में विवरण शामिल है। यह एक बहुत ही सरल अपवाद वर्ग हो सकता है जो कोई कन्स्ट्रक्टर तर्क नहीं लेता है लेकिन स्टैक ट्रेस को कस्टम संदेश प्रदान करने के लिए शायद super("Cannot generate mean for an empty list");
पर कॉल कर सकता है।
कई बार यह पर्याप्त नहीं किया जाता है ... मेरे सबसे नफरत वाले कोड गंधों में से एक तब होता है जब डेवलपर्स एक सामान्य अपवाद (कभी-कभी अपवाद स्वयं) का उपयोग करते हैं और कन्स्ट्रक्टर में एक स्ट्रिंग संदेश पास करते हैं। ऐसा करने से यह वैध है लेकिन आपके कोड को लागू करने वालों की नौकरियां बहुत कठिन होती हैं क्योंकि उन्हें सामान्य अपवाद पकड़ना पड़ता है जब वास्तव में केवल कुछ चीजें हो सकती हैं। अपवादों में समान पदानुक्रम होना चाहिए, जो आप प्रत्येक स्तर के साथ डेटा के लिए उपयोग करते हैं, जो अधिक विशिष्ट विवरण प्रदान करते हैं। अपवाद वर्ग का अधिक विस्तृत विवरण, स्टैक ट्रेस अधिक विस्तृत और उपयोगी है।
मुझे यह साइट मिली है: Exceptional Strategies मेरे अनुप्रयोगों के लिए अपवाद बनाने के दौरान बहुत उपयोगी होने के लिए।
स्रोत
2010-09-27 22:20:58
अच्छी तरह से, मुझे लगता है कि कौन सा अपवाद संभालने के लिए सबसे अच्छा तरीका है अपने प्रोग्राम को तोड़ना और जावा कंपाइलर को आपको बताना है .. यह नहीं है –