मैं सी ++ से जावा पर आया हूं। सी ++ दुनिया में हम अपवाद सुरक्षा पर ध्यान देते हैं, और ध्यान दें कि म्यूटेटर म्यूटेटर द्वारा फेंकने वाले अपवादों के सामने अलग-अलग गारंटी प्रदान कर सकते हैं या एक विधि जो इसे प्रस्तुत करता है (न्यूनतम, मजबूत, नो-थ्रो)। एक मजबूत अपवाद गारंटी के लिए एक विधि को कार्यान्वित करने की आवश्यकता है कि कुछ बुनियादी परिचालनों को कभी भी अपवाद फेंकने की गारंटी नहीं दी जाती है। जेएलएस इस बारे में बयान देता है कि कौन से ऑपरेशन किस प्रकार के अपवाद फेंक सकते हैं, लेकिन VirtualMachineError
त्रुटि एक समस्या प्रस्तुत करती है। Quoth JLS:नो-फेंक वर्चुअलमैचिनरर गारंटी
एक आंतरिक त्रुटि या संसाधन सीमा जावा भाषा प्रोग्रामिंग के शब्दों को लागू करने से जावा आभासी मशीन रोकता है, इस मामले में,
VirtualMachineError
के उप-वर्ग का एक उदाहरण फेंक दिया गया है।
जेएलएस VirtualMachineError
के बारे में और नहीं कहता है। एक "आंतरिक त्रुटि" का अर्थ JVM में एक बग है, इसलिए मुझे उस मामले में कोई दिलचस्पी नहीं है: JVM में बग के चेहरे में, सभी दांव बंद हैं। लेकिन "संसाधन सीमा" मामले के बारे में क्या? क्या कोई ऐसा ऑपरेशन है जो किसी संसाधन सीमा के कारण विफल होने की गारंटी नहीं देता है?
किसी उत्तर की सबसे नज़दीकी चीज़ 'कोशिश {...} पकड़ (थ्रोबल टी) {} 'होगी। बेशक अगर स्मृति समाप्त हो जाती है तो कोई भी निरंतरता लगभग असंभव साबित होगी। अब यह सी ++ में अलग नहीं है। –
मैं अपने स्वयं के प्रश्न का उत्तर दे रहा हूं। अक्सर पूछे जाने वाले प्रश्न भी इसका सहारा लेते हैं। – Raedwald