मुझे यकीन नहीं है कि मैं ऐसा करूंगा (हालांकि मुझे जावाडॉक दिया गया था, मैं आपको बता नहीं सकता कि मैं क्यों झिझकता हूं), लेकिन वहाँ पर दबाए गए अपवादों की सूची है Throwable
, जिन्हें आप जोड़ सकते हैं addSuppressed
। JavaDoc यह कहने की जरूरत नहीं है कि यह केवल JVM के लिए उपयोग के साथ संसाधनों के लिए है:
अपवादों को निर्दिष्ट अपवाद को जोड़ता है जो इस अपवाद को वितरित करने के लिए दबाए गए थे। यह विधि थ्रेड-सुरक्षित है और आमतौर पर कोशिश-के-संसाधनों के बयान द्वारा (स्वचालित रूप से और संक्षेप में) कहा जाता है।
जब तक कि एक कंस्ट्रक्टर के माध्यम से अक्षम नहीं किया जाता तब तक दमन व्यवहार सक्षम होता है। जब दमन अक्षम होता है, तो यह विधि अपने तर्क को मान्य करने के अलावा और कुछ नहीं करती है।
ध्यान दें कि जब एक अपवाद दूसरे अपवाद का कारण बनता है, तो पहला अपवाद आमतौर पर पकड़ा जाता है और फिर दूसरे अपवाद को प्रतिक्रिया में फेंक दिया जाता है। दूसरे शब्दों में, दो अपवादों के बीच एक कारण संबंध है। इसके विपरीत, ऐसी परिस्थितियां हैं जहां दो स्वतंत्र अपवादों को सिबलिंग कोड ब्लॉक में फेंका जा सकता है, विशेष रूप से एक कोशिश के साथ-साथ संसाधनों के स्टेटमेंट ब्लॉक में और कंपाइलर-जनरेट अंततः ब्लॉक जो संसाधन बंद कर देता है। इन स्थितियों में, फेंके गए अपवादों में से केवल एक को ही प्रचारित किया जा सकता है। ट्राई-रि-रिसोर्स स्टेटमेंट में, जब दो ऐसे अपवाद होते हैं, तो ट्राई ब्लॉक से उत्पन्न होने वाले अपवाद का प्रसार होता है और अंत में ब्लॉक से अपवाद को प्रयास ब्लॉक से अपवाद द्वारा दबाए गए अपवादों की सूची में जोड़ा जाता है। एक अपवाद के रूप में ढेर को उजागर करता है,
एक अपवाद एक अपवाद के कारण होने पर भी अपवादों को दबा सकता है। अपवाद का कोई कारण होता है या नहीं, इसके निर्माण के समय शब्दार्थ ज्ञात होता है, इसके विपरीत कोई अपवाद अन्य अपवादों को दबाएगा भी या नहीं, यह आमतौर पर अपवाद के फेंकने के बाद ही निर्धारित होता है।
ध्यान दें कि प्रोग्रामर लिखित कोड इस पद्धति को उन स्थितियों में कॉल करने का लाभ उठाने में सक्षम है जहां कई सिबलिंग अपवाद हैं और केवल एक को प्रचारित किया जा सकता है।
AggregateException
अपवादों की एक सूची है। यह विचार जावा पर भी लागू होना चाहिए।