Perl, Python, C ++ 또는 Tcl 프로그램이 처리되지 않은 예외로 중지 될 때마다 해당 언어 런타임은 프로세스에 대해 0이 아닌 종료 코드를 등록합니다. Eclipse 기반 프로그램조차 시작 중에 실패하면 1을 리턴합니다. java.exe
그러나 표준으로 실행되는 프로그램 은 프로그램 System.exit()
이 종료 값으로 호출하지 않는 한 아무리 갑자기 끝나더라도 행복하게 0을 반환 합니다. 짝수 AssertionFailedError
또는 UnsatisfiedLinkError
성공 종료로 호출 프로그램에 다시보고됩니다.
물론 모든 시스템에 프로그램 리턴 코드가있는 것은 아니지만 Unix와 Windows는 java.lang.Process.exitValue()
하위 프로세스 를 보증 할만큼 중요했습니다 . 부모 프로세스에 대한 명예 협약도 보증하지 않습니까?
이것이 언어 디자인이나 구현상의 결함입니까? 좋은 생각이라는 주장이 있습니까?
이것이 StackOverflow에 더 적합하지 않은지 궁금합니다 ...하지만 의견입니다.
—
gablin
@gablin Mmm, 실제로 SO 에이 질문을 작성하기 시작한 다음 마음이 바뀌고 여기에 게시했습니다.
—
James