2013-10-13 45 views
6

我在stackoverflow上看到大量关于System.exit(int status)的问题。Java。 System.exit(int status)。退出状态的值

例如:

Difference in System. exit(0) , System.exit(-1), System.exit(1) in Java

difference between System.exit(0) and System.exit(-1)

但我没有看到我的部分问题的答案:

我们有微软产品exit statusSystem Error Codes之间的直接连接( Microsoft site)?

当然,我们没有任何直接连接,但是:我们可以进行此连接吗?

如果我们在Windows操作系统上运行我们的java程序,并且我们的java程序有System.exit(int status)声明,我们可以使用System Error Codes list还是没有?

这是好主意还是不好?

您对此有何看法?任何其他想法?

实施例:

  • Java程序经由上Wisdows OS命令行运行;
  • 我们的java程序捕获异常,如FileNotFoundException;
  • 之后我们决定通过System.exit(int state)关闭我们的程序;
  • 在这种情况下,exit status可以等于?

因为(Microsoft site):

ERROR_FILE_NOT_FOUND 
2 (0x2) 
The system cannot find the file specified. 

回答

7

退出状态是您选择的值。如果您调用您的程序,然后根据完成执行后返回的退出值作出反应,您可以随意处理它们。

只有一个通用规则,即退出状态0假定您的程序没有错误地完成。此外,负退出状态是通常由于意外错误而被假定为终止,而正退出状态被假定为(或多或少)正常终止。

但是,如果没有批处理文件调用你的代码,没有人会对退出状态作出反应,因此你可以返回任何你想要的,它将不起作用。

2

退出代码是简单的信息,并且可以根据您的设计。 Microsoft代码非常重要,因为MS软件可能会尝试识别它们,同样在Linux上有预定义的同意代码different set。使用其中一套不会伤害。