यदि कोई .NET प्रोग्राम समाप्त होने से पहले निकास कोड को स्पष्ट रूप से सेट करने में विफल रहता है (Environment.Exit()
/Appliation.Current.Shutdown()
/... पर कॉल करके), उस प्रक्रिया के लिए निकास कोड क्या है?कौन से निकास कोड एक .NET प्रोग्राम कर सकते हैं, जब Environment.Exit() का उपयोग नहीं किया जाता है?
क्या सामान्य समाप्ति हमेशा निकास कोड शून्य में परिणाम देती है, और अन्य संभावित मामले क्या हैं?
हंस Passant से संबंधित सवाल Getting ExitCode From Exception Handler को this answer के अनुसार: "अगर एक कार्यक्रम एक अपवाद पर मर जाता है तो इसकी बाहर निकलें कोड सामान्य रूप से अंतर्निहित अपवाद त्रुटि कोड रूप में ही है"।
तो एक अनजान अपवाद निकास कोड को व्यवस्थित कर सकता है। क्या यह हमेशा मामला है, और क्या अंतर्निहित अपवाद त्रुटि कोड हमेशा शून्य से अलग है, और एक विशिष्ट सीमा में है?
क्या ऐसी अन्य परिस्थितियां हैं जहां नेट फ्रेमवर्क या विंडोज स्वचालित रूप से एक अन्य निकास कोड सेट कर सकते हैं, जैसे कि कुछ अपवाद अपरिचित क्रैश (क्या यह संभव है?), या एक मजबूर कार्य हत्या?
इसे एक और तरीका रखने के लिए, क्या मैं निकास कोड द्वारा निर्धारित कर सकता हूं कि प्रोग्राम किसी असामान्य फैशन में समाप्त हो गया है या नहीं?
या यदि कुछ असामान्य मामलों में शून्य का निकास कोड भी हो सकता है, तो क्या मैं प्रोग्राम के लिए सभी सामान्य समाप्ति पथों में Environment.Exit(somevalue)
शामिल कर सकता हूं, और सुनिश्चित करें कि यह निकास कोड किसी दुर्घटना के मामले में कभी नहीं हो सकता है?
प्रेरणा:
not all exeptions are catchable गंभीर समाधान के बिना के बाद से, और के बाद से अचानक कार्यक्रम ध्यान में न आया excpetions के अलावा अन्य समाप्ति, बनाने के लिए अन्य कारणों भी हो सकते हैं सुनिश्चित करें कि सभी कोड पथ फोन Environment.Exit() alwas संभव नहीं है। यही कारण है कि मुझे यह निर्धारित करने में दिलचस्पी है कि निकास कोड का उपयोग विश्वसनीय रूप से यह बताने के लिए किया जा सकता है कि कोई प्रोग्राम सामान्य रूप से बाहर निकला है या नहीं।
मैंने अपने प्रश्न और प्रस्तावित डुप्लिकेट के बीच मतभेद जोड़े। जबकि दूसरा जवाब भी मेरे प्रश्न के एक हिस्से के साथ मदद करता है, यह पूरी तरह से इसका जवाब नहीं देता है, और सवाल स्वयं पूरी तरह से अलग है। – HugoRune
टैंगेंटल सुझाव: मिनीडंप सक्षम बनाने के विकल्प के साथ, विंडोज त्रुटि रिपोर्टिंग सक्षम करें। इस तरह से आपके पास न केवल निकास कोड होता है, बल्कि अपवाद रिकॉर्ड और आंशिक ढेर भी जिन्हें आप डीबगर से गुजर सकते हैं। (एसओएस डीबगर का उपयोग कर WinDBG की तरह।) यहां तक कि मिनीडंप के बिना भी WER त्रुटि संदेश के बारे में कुछ जानकारी प्राप्त करता है। एक आंतरिक अनुप्रयोग के लिए, आप क्रैश रिपोर्ट स्वचालित रूप से सबमिट होने के लिए भी एक सर्वर स्थापित कर सकते हैं। यह [पेज] (https://technet.microsoft.com/en-us/library/cc709644.aspx) TechNet पर एक अच्छा अवलोकन है। – theB
निकास कोड बहुत बेकार IMHO है। यहां और अधिक: http://stackoverflow.com/questions/4344923/process-exit-code-when-process-is-killed-forcibly –