Bir Perl, Python, C ++ veya Tcl programı işlenmeyen bir istisna dışında durduğunda, bu dil çalışma zamanları işlem için sıfır olmayan bir çıkış kodu kaydetmeye özen gösterir. Eclipse tabanlı programlar bile başlatma sırasında başarısız olursa 1 değerini döndürür. java.exe
Bununla birlikte, standart tarafından çalıştırılan programlar , program System.exit()
bir çıkış değeriyle çağrılmadıkça, ne kadar aniden sona erdiğine bakılmaksızın mutlu bir şekilde sıfır döndürür . Hatta AssertionFailedError
veya UnsatisfiedLinkError
başarılı çıkışlar olarak çağıran programa geri bildirilir.
Elbette tüm sistemlerin program dönüş kodları yoktur, ancak Unix ve Windows java.lang.Process.exitValue()
alt süreçleri garanti etmek için yeterince önemliydi ; ebeveyn süreçleri için sözleşmelere saygı duymalarını da istemiyorlar mı?
Bu, dil tasarımında veya sadece uygulamada bir kusur mu? İyi bir fikir olduğuna dair bir argüman var mı?