Java的。 System.exit(int status)。退出状态的值

时间:2013-10-13 19:59:01

标签: java windows exit-code

我在System.exit(int status)上看到了大量关于stackoverflow的问题。

例如:

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产品(Microsoft site)建立了直接联系?

当然,我们没有任何直接联系,但是:我们可以建立此连接吗?

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

是不是好主意?

你怎么看?还有其他想法吗?

示例:

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

因为(Microsoft site):

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

2 个答案:

答案 0 :(得分:8)

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

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

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

答案 1 :(得分:2)

退出代码只是信息性的,可以基于您的设计。 Microsoft代码很重要,因为MS软件可能会尝试识别它们,同样在Linux上有different set预定义的约定代码。使用其中一套不会有害。