संभव डुप्लिकेट:
Catching java.lang.OutOfMemoryErrorक्या OutOfMemoryError को कैप्चर करना इतना बुरा विचार है?
OutOfMemoryError हैं: क्योंकि यह स्मृति से बाहर है, और कोई और अधिक
फेंक दिया जब जावा वर्चुअल मशीन एक वस्तु आवंटित नहीं कर सकता स्मृति कचरा कलेक्टर
012 द्वारा उपलब्ध कराया जा सकता है
जावा का कहना है:
कोई त्रुटि फेंकने योग्य का एक उपवर्ग है कि गंभीर समस्याओं इंगित करता है कि एक उचित आवेदन को पकड़ने की कोशिश नहीं करनी चाहिए। ऐसी अधिकांश त्रुटियां असामान्य स्थितियां हैं।
यह सुनवाई की तरह लगता है:
आप डूब रहे हैं, तो उचित होना: यदि आप ऊपर की तरफ पानी के ऊपर अपने सिर रखने के लिए तैरने के लिए कोशिश नहीं करनी चाहिए। मृत्यु आमतौर पर असामान्य स्थितियों से होती है।
चलो एक परिदृश्य की कल्पना करें जहां कोई सेवा चला रहा है। किसी कारण से, एक ही सर्वर पर एक और एप्लीकेशन बहुत मेमोरी खा रहा है, जिससे आपकी सेवा में एक अप्रत्याशित ओओएम हो रहा है। क्या उपयोगकर्ता के लिए उपलब्ध रहने के लिए इस सेवा की स्मृति खपत को कम करने का प्रयास करना इतना बुरा विचार है?
या ओओएम फेंकने के बाद ऐसे समाधान के कार्यान्वयन को रोकने के लिए जेवीएम स्तर पर कुछ और मौलिक हो रहा है?
@aix मैं नाटकीय परिस्थितियों में अभी भी ठीक होने के बावजूद उन्हें ठीक से सहेजने के बावजूद कुछ डेटा संरचनाओं के कुछ संदर्भों को ढीला कर सकता हूं। – JVerstry
@dogbane आपका संदर्भ मेरे प्रश्न का उत्तर नहीं देता है, यह प्रश्न डुप्लिकेट नहीं है। – JVerstry
एक बेहतर सादृश्य होगा: आप एक कार चला रहे हैं जो आग लगती है। जारी रखने और अपने गंतव्य तक पहुंचने का प्रयास न करें। कंधे पर खींचो। – Jim