मैं एक असाइनमेंट के लिए एक ग्रेडिंग प्रोग्राम लिख रहा हूं जिसमें छात्र रिकर्सिव सॉर्ट एल्गोरिदम लागू कर रहे हैं। इसका मतलब है कि कई छात्र शायद टूटे हुए कोड में बदल जाएंगे जो स्टैक ओवरफ्लो का कारण बनता है। मैं किसी भी तरह से स्टैक ओवरफ्लो पकड़ना चाहता हूं जो छात्र कोड को कॉल करते समय होते हैं, इसलिए मैं उनके स्कोर से कटौती कर सकता हूं और अन्य परीक्षणों पर जारी रख सकता हूं। दुर्भाग्यवश, स्टैक ओवरफ़्लो अन्य अपवादों के मानक पथ से नहीं प्रतीत होता है - कोशिश करने/पकड़ने वाले ब्लॉक मदद करने के लिए प्रतीत नहीं होते हैं। क्या स्टैक ओवरफ़्लो होने के बाद मेरे कोड पर निष्पादन वापस करने का कोई तरीका है? मैंने ऐसा करने के लिए धागे का उपयोग करने में देखा है, लेकिन ऐसा लगता है कि कोशिश/पकड़ का उपयोग करने में सक्षम नहीं है।जावा में स्टैक ओवरफ़्लो से मैं कैच और पुनर्प्राप्ति कैसे करूं?
9
A
उत्तर
14
अपने छात्रों के तरीकों को कॉल करते समय, आपको कॉल-कैच ब्लॉक में कॉल एम्बेड करना चाहिए और Exception
एस Throwables
पर पकड़ना चाहिए।
निम्नलिखित कोड देखें:
public class Test { /** * @param args */ public static void main(String[] args) { try { soe(); } catch (Throwable e) { System.out.println("Caught:" + e + ", everything went better than expected."); } } /** * Method producing StackOverflowError */ public static void soe() { soe(); } }
अधिक जानकारी
जब पकड़ने Throwable
रों तुम्हें पकड़ होगा:
- सामान्य
Exception
रों - जो लागू आप उपयोग करनाtry-catch
याthrows
(उदाहरण के लिएIOException
) RuntimeException
एस - जो विधियों के माध्यम से बुलबुला (उदाहरण के लिए।NullPointerException
)Error
एस - उदाहरण के लिए।StackOverflowError
Throwable
वस्तु
2
आप एक नए Process
का उपयोग करके अपने प्रोग्राम को बंद कर सकते हैं और फिर स्टैक ओवरफ़्लो की जांच के लिए अपनी त्रुटि स्ट्रीम को रीडायरेक्ट कर सकते हैं।
+0
इसके लिए कोई आवश्यकता नहीं है - नीचे मटिया का जवाब देखें। –
1
पर official Java Docs देखें आप एक अलग JVM में प्रत्येक कार्यक्रम चलाने की कोशिश कर सकते हैं।
संबंधित मुद्दे
- 1. AppDomain.FirstChanceException और स्टैक ओवरफ़्लो अपवाद
- 2. हास्केल में स्टैक ओवरफ़्लो से कैसे बचें?
- 3. स्टैक ओवरफ़्लो
- 4. स्टैक ओवरफ़्लो
- 5. स्टैक ओवरफ़्लो
- 6. रैपर DLLs में स्टैक ओवरफ़्लो से बचें
- 7. स्टैक ओवरफ़्लो तक शेष स्टैक का आकार
- 8. स्टैक ओवरफ़्लो या क्वारा
- 9. स्टैक ओवरफ़्लो वेब आर्किटेक्चर
- 10. मैं जावा में एक स्टैक कैसे कॉपी करूं?
- 11. स्टैक ओवरफ़्लो पर सेगफॉल्ट
- 12. हास्केल स्टैक ओवरफ़्लो
- 13. स्टैक ओवरफ़्लो क्या है?
- 14. स्टैक ओवरफ़्लो और बफर ओवरफ़्लो के बीच क्या अंतर है?
- 15. आईडीई में स्टैक ओवरफ़्लो एकीकृत करें?
- 16. जावा स्टैक ओवरफ़्लो त्रुटि - ग्रहण में स्टैक आकार को कैसे बढ़ाया जाए?
- 17. मैं ग्रोवी स्टैक ट्रेस कैसे प्रिंट करूं?
- 18. सी # सेट में स्टैक ओवरफ़्लो त्रुटि/
- 19. स्टैक ओवरफ़्लो शैली कीवर्ड टैग
- 20. एफ # बनाम ओकैम: स्टैक ओवरफ़्लो
- 21. स्टैक आकार की निगरानी करके स्टैक ओवरफ़्लो को कैसे रोकें?
- 22. ऑपरेटर अधिभार एक स्टैक ओवरफ़्लो
- 23. रिकर्सिव फ़ंक्शन एक स्टैक ओवरफ़्लो
- 24. जावा पैटर्न स्टैक ओवरफ़्लो का कारण बनता है
- 25. जावा रेगेक्स स्टैक ओवरफ़्लो पर मर जाता है: बेहतर संस्करण
- 26. मैं कोक नट्स में स्टैक ओवरफ़्लो या सेगमेंटेशन गलती से कैसे बच सकता हूं?
- 27. मैं जावा अपवाद में कैसे संलग्न करूं?
- 28. मेरा रेगेक्स जावा में एक स्टैक ओवरफ़्लो पैदा कर रहा है; मैं क्या खो रहा हूँ?
- 29. स्टैक ओवरफ़्लो का कारण क्या है?
- 30. जावा स्निपेट जो कंपाइलर या टाइपशेकर (जावा) में स्टैक ओवरफ़्लो का कारण बनता है?
यह। त्रुटियां और अपवाद दोनों थ्रोबल के उप-वर्ग हैं, यही वजह है कि त्रुटियां सामान्य अपवाद-पकड़ के माध्यम से गुजरती हैं। यह इस तरह से डिजाइन किया गया है कि इतनी महत्वपूर्ण विफलताओं (जो कि जावा में त्रुटियां हैं) प्रोग्रामर द्वारा आसानी से बाधित नहीं की जाएगी। –
@ इब्राहिम संक्षिप्त: मूल बातें इंगित करने के लिए धन्यवाद। यह – Jayy
उत्कृष्ट, धन्यवाद में मदद करता है! – Solaraeus