जावा में, हम प्रोग्राम से बाहर निकलने के लिए System.exit(int)
का उपयोग करते हैं। सी में "निकास मूल्य" का कारण यह था कि किसी प्रोग्राम में त्रुटियों की जांच के लिए निकास मान का उपयोग किया गया था। लेकिन जावा में, त्रुटियों को एक अपवाद से फेंक दिया जाता है, इस प्रकार उन्हें आसानी से संभाला जा सकता है। तो हमारे पास जावा में बाहर निकलने वाले मूल्य क्यों हैं?जावा में हमारे पास निकास कोड क्यों हैं?
उत्तर
बाहर निकलने वाले मूल्य कॉलिंग प्रोग्राम में वापस लौटाए गए हैं उदा। खोल। एक बाहरी कार्यक्रम द्वारा एक अपवाद पकड़ा नहीं जा सकता है।
बीटीडब्ल्यू जब आप अपवाद फेंकते हैं तो उसे उस धागे से पकड़ा जाता है या धागा मर जाता है, finally
ब्लॉक अभी भी उस धागे के लिए बुलाए जाते हैं। जब आप System.exit() को कॉल करते हैं, तो सभी थ्रेड तुरंत बंद हो जाते हैं और अंत में ब्लॉक को कॉल नहीं किया जाता है।
कार्यक्रम के सफल या असफल समापन को संकेत देने के लिए कॉलर्स को निकास मूल्य वापस कर दिए जाते हैं। कॉलर अपवाद को पकड़ने और तदनुसार इसे संभालने में सक्षम नहीं हो सकता है।
उदाहरण के लिए। 0 निकास मूल्य का मतलब सफल समापन है जबकि गैर-शून्य रिटर्न मान का अर्थ निष्पादन में कुछ त्रुटि है।
इसके अलावा, System.exit() उस बिंदु पर रोकने के लिए एप्लिकेशन में सभी थ्रेड बनाएगा।
इसी कारण से।
निकास कोड विशेष रूप से डीबगिंग और हैंडलिंग उद्देश्यों के लिए कार्यक्रम के बाहर पार्टियों और अनुप्रयोगों द्वारा उपयोग किए जाते हैं। एक सुपर-एप्लिकेशन निश्चित रूप से एक स्टैक ट्रेस को पार्स करने की कोशिश करने से बेहतर रिटर्न कोड को संभाल सकता है।
इसके अलावा, यदि आप अंतिम उपयोगकर्ता के लिए आवेदन बना रहे हैं, तो आप कुछ कारणों से स्टैक ट्रेस जानकारी के समूह को पोस्ट करने के बजाय अपने ऐप से अधिक से अधिक बाहर निकलेंगे: एक, आप उन्हें डरा रहे होंगे बहुत सारे पागल दिखने वाले टेक्नो-गिबरिश के साथ, और दो, स्टैक निशान अक्सर प्रोग्राम को मूल रूप से संरचित करने के तरीके के बारे में संवेदनशील और गोपनीय जानकारी प्रकट करते हैं (एक संभावित हमलावर को सिस्टम के बारे में अधिक जानकारी देना)।
वास्तविक दुनिया के उदाहरण के लिए, मैं जावा बैच प्रोग्राम पर काम कर रहा था जिसने अपनी नौकरियों के लिए निकास कोड का उपयोग किया था। एक उपयोगकर्ता यह देख सकता था कि क्या नौकरी सफलतापूर्वक निष्पादित की गई है या नहीं, इस पर आधारित है कि निकास कोड "0" था या नहीं। यदि यह कुछ और था, तो वे बाहर निकलने के कोड की अतिरिक्त जानकारी के साथ सशस्त्र तकनीकी सहायता से संपर्क कर सकते थे, और सहायता डेस्क में उन निकास कोड के आधार पर सभी आवश्यक जानकारी होगी जो उनकी मदद के लिए होंगी। यह गैर-तकनीकी अंत उपयोगकर्ता से पूछने की कोशिश करने से बहुत अच्छा काम करता है, "ठीक है, तो आप क्या अपवाद प्राप्त कर रहे हैं?"
लंबी कहानी संक्षिप्त, जावा प्रोग्राम चलाने के दौरान अपवाद का सामना करने वाले उपयोगकर्ता को निकास कोड सरल सिग्नल होते हैं। चूंकि हम मानते हैं कि अधिकांश उपयोगकर्ता अपवाद के स्टैक ट्रेस डेटा को नहीं समझते हैं, ये सरल गैर शून्य कस्टम कोड उन्हें बताएंगे कि कुछ गलत है और यह विक्रेता को सूचित किया जाना चाहिए। तो विक्रेता को कोड मिल जाता है और वह उस कोड से जुड़े स्टैक ट्रेस को जानता है और सिस्टम की मरम्मत करने की कोशिश करता है। यह प्रोग्रामर द्वारा प्रदान किया गया एक अमूर्त है ताकि उपयोगकर्ताओं को विशाल स्टैक निशान पढ़ने और रिपोर्ट करने की आवश्यकता न हो। यहां एक बहुत अच्छा सादृश्य है SQLException वर्ग में getErrorCode() विधि है। यह विधि क्लाइंट मशीन पर चल रहे मौजूदा JVM को भी बंद कर देती है। इसका तात्पर्य यह है कि यह JVM में मौजूद सभी थ्रेड को समाप्त करता है। यह विधि क्लास Java.lang.Runtime कक्षा में निकास विधि को कॉल करती है। यदि आप इस विधि के दस्तावेज़ीकरण पर जाते हैं, तो आप समझेंगे कि वर्चुअल मशीन कैसे बंद हो जाती है।
यह लिंक http://docs.oracle.com/javase/6/docs/api/java/lang/Runtime.html#exit%28int%29
- 1. क्या हमारे पास जावा में सी ++ में डिज़ाइन पैटर्न हैं?
- 2. हमारे पास जावास्क्रिप्ट में बंद क्यों है?
- 3. हमारे पास पाइथन में कॉल करने योग्य ऑब्जेक्ट्स क्यों हैं?
- 4. जावा निकास कोड और अर्थ
- 5. एक मशीन में हमारे पास कितने JVM हो सकते हैं?
- 6. क्या हमारे पास IENumerable
- 7. क्या हमारे पास स्ट्रिंग के लिए जावा में कुछ प्लेसहोल्डर हैं क्योंकि हमारे पास एसक्यूएल तैयार कथन
- 8. क्या हमारे पास बुलेटन
- 9. क्या हमारे पास edittext
- 10. हमारे पास C12+ में <cstdfloat> क्यों नहीं है?
- 11. प्रक्रिया निकास कोड
- 12. जब हमारे पास रैपर वर्ग होते हैं, तो प्राइमेटिव का समर्थन क्यों किया जाता है?
- 13. क्या हमारे पास सी ++ में बंद है?
- 14. एक्सकोड त्रुटि: निकास कोड 1
- 15. पिछले कमांड निकास कोड
- 16. निकास कोड प्राप्त करें -
- 17. copypng निकास कोड 1
- 18. सही निकास कोड
- 19. पायथन थ्रेड निकास कोड
- 20. हमारे पास दोनों जंजीर सरणी और बहुआयामी सरणी क्यों है?
- 21. क्या हमारे पास जावा गुण फ़ाइल में मल्टीलाइन टिप्पणियां हो सकती हैं?
- 22. रेजर/सीएसएचटीएमएल - हमारे पास क्या लाभ है?
- 23. सी #: हमारे पास आंतरिक तरीकों/स्थानीय कार्य क्यों नहीं हो सकते हैं?
- 24. GenerateDSYMFile: dsymutil निकास कोड 11
- 25. क्यों RedirectStandardOutput के पास आवश्यक एएनएसआई कोड नहीं हैं?
- 26. यदि हमारे पास सरोगेट जोड़े हैं तो यूटीएफ -16 के बजाय यूटीएफ -32 क्यों?
- 27. हमारे पास बिजनेस लॉजिक लेयर (बीएलएल)
- 28. क्या हमारे पास एकाधिक मदरप्रॉप माइक्रोडाटा टैगिंग
- 29. कंपाइलर आंतरिक त्रुटि। निकास कोड 3
- 30. अजीब एसएसआईएस त्रुटि (प्रक्रिया निकास कोड 255)
बाहर निकलने के मूल्य ऑपरेटिंग सिस्टम के लिए निर्दिष्ट किया जाता है है। –
सभी डाउनवॉट क्यों? – arshajii
possiblity डुप्लिकेट http://stackoverflow.com/q/457338/668970 – developer