खैर सब से पहले,
अपवाद के 2 प्रकार के होते हैं। चेक किया गया & अनचेक किया गया।
अनचेक अपवाद वे हैं जिनसे आपका प्रोग्राम पुनर्प्राप्त नहीं हो सकता है। नलपॉइंटर्स की तरह, आपको बता रहा है कि आपके तर्क के साथ कुछ वास्तव में गलत है।
चेक किए गए अपवाद रनटाइम अपवाद हैं, और इनसे आप पुनर्प्राप्त कर सकते हैं।
इसलिए आपको "अपवाद" बेस क्लास की तलाश में पकड़ राज्यों का उपयोग करने से बचना चाहिए। जो दोनों बार प्रतिनिधित्व करते हैं। आपको शायद विशिष्ट अपवादों (आमतौर पर रन-टाइम अपवादों के उप-वर्ग) की तलाश करने पर विचार करना चाहिए।
संक्षेप में, इसमें बहुत कुछ है।
आपको यह भी ध्यान में रखना चाहिए कि आपको वर्कफ़्लो के रूप में अपवाद हैंडलिंग का उपयोग नहीं करना चाहिए। आमतौर पर इंगित करता है कि आपकी वास्तुकला किसी भी तरह की कमी है। और जैसा कि नाम बताता है, उन्हें सामान्य निष्पादन के लिए "अपवाद" के रूप में माना जाना चाहिए।
for(DataSource source : dataSources) {
try {
//do something with 'source'
} catch (Exception e) { // catch any exception
continue; // will just skip this iteration and jump to the next
}
//other stuff ?
}
यह है, यह अपवाद को पकड़ने और आगे बढ़ने चाहिए:
अब, आप कोड पर विचार। शायद कुछ ऐसा नहीं है जो आप हमें नहीं बता रहे हो? : पी
वैसे भी, उम्मीद है कि इससे मदद मिलती है।
आपके पास अब तर्क है कि यह ठीक है। यदि अपवाद 'डेटासोर्स' को अमान्य स्थिति में रखता है, तो इटरेटर का उपयोग करने का अगला प्रयास एक अलग अपवाद फेंक सकता है। –