Щоразу, коли програма Perl, Python, C ++ або Tcl зупиняється, за винятком необробленого винятку, ці мовні режими дбають про реєстрацію ненульового коду виходу для цього процесу. Навіть програми на основі Eclipse повертають 1, якщо вони не вдаються під час запуску. Програми, які виконуються за стандартом java.exe, щасливо повертають нуль незалежно від того, наскільки різко вони закінчуються, якщо тільки програма не дзвонить System.exit()зі значенням виходу. Навіть AssertionFailedErrorабо UnsatisfiedLinkErrorповідомляється про те, що викликає програму, як успішний вихід.
Звичайно, не всі системи мають коди повернення програми, але Unix і Windows були досить важливими, щоб гарантувати java.lang.Process.exitValue()дочірні процеси; Чи вони також не гарантують дотримання конвенцій для батьківських процесів?
Це вада в мовному дизайні чи просто в реалізації? Чи є аргумент, що це гарна ідея?