किसी भी समय एक पर्ल, पायथन, C ++ या Tcl प्रोग्राम बिना किसी अपवाद के रुकता है, जो भाषा रनटाइम की प्रक्रिया के लिए गैर-शून्य निकास कोड को पंजीकृत करने के लिए ध्यान रखते हैं। यहां तक कि ग्रहण-आधारित कार्यक्रम 1 लौटते हैं यदि वे स्टार्टअप के दौरान विफल हो जाते हैं। java.exe
हालाँकि, मानक द्वारा चलाए जा रहे कार्यक्रम , ख़ुशी से शून्य वापस लौट जाते हैं, चाहे वह अचानक समाप्त क्यों न हो जाए, जब तक कि प्रोग्राम System.exit()
एक्ज़िट वैल्यू के साथ न आ जाए । यहां तक कि AssertionFailedError
या UnsatisfiedLinkError
कॉलिंग प्रोग्राम में सफल निकास के रूप में वापस रिपोर्ट किया जाता है।
बेशक सभी प्रणालियों में प्रोग्राम रिटर्न कोड नहीं हैं, लेकिन यूनिक्स और विंडोज java.lang.Process.exitValue()
बच्चे प्रक्रियाओं के लिए वारंट के लिए महत्वपूर्ण थे ; क्या वे मूल प्रक्रियाओं के लिए सम्मेलनों का सम्मान भी करते हैं?
क्या यह भाषा के डिजाइन में दोष है या सिर्फ कार्यान्वयन में है? क्या कोई तर्क है कि यह एक अच्छा विचार है?