मैं एक वर्ग है जो अपने आवेदन के विन्यास वस्तुओं लोड करता है और उन पर नज़र रखता है ताकि मैं आसानी से परिवर्तन को लिखने या एक ही विधि कॉल के साथ एक ही बार में पूरे विन्यास को फिर से लोड कर सकते हैं लिखा है। हालांकि, प्रत्येक विन्यास वस्तु संभवतः जब आईओ कर एक अपवाद फेंक सकती है, फिर भी मैं उन त्रुटियों क्रम अन्य वस्तुओं अभी भी फिर से लोड करने/लिखने का मौका देने के लिए समग्र प्रक्रिया को रद्द नहीं करना चाहती। इसलिए मैं सभी अपवादों जो वस्तुओं से अधिक पुनरावृत्ति और उन्हें एक सुपर अपवाद है, जो लूप के बाद फेंक दिया जाता है में स्टोर जबकि फेंक दिया जाता है, क्योंकि प्रत्येक अपवाद अभी भी नियंत्रित किया जाना चाहिए और किसी को वास्तव में क्या गलत हो गया था के बारे में सूचित किया जाना है एकत्रित करते हैं। हालांकि, यह दृष्टिकोण मेरे लिए थोड़ा अजीब लग रहा है। क्लीनर समाधान के साथ कोई बाहर?हैंडलिंग कई अपवाद
public synchronized void store() throws MultipleCauseException
{
MultipleCauseException me = new MultipleCauseException("unable to store some resources");
for(Resource resource : this.resources.values())
{
try
{
resource.store();
}
catch(StoreException e)
{
me.addCause(e);
}
}
if(me.hasCauses())
throw me;
}
ध्यान में रखते हुए फिर से लोड करने, जिन वस्तुओं पर एक अपवाद फेंक फिर नवीनतम संभव लगातार राज्य का प्रतिनिधित्व करते हैं (यानी विन्यास की पुरानी जानकारी की प्रतिलिपि रखने के लिए)। –