6

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

例如:

系统差异。Java 中的 exit(0) 、 System.exit(-1)、 System.exit(1 )

System.exit(0) 和 System.exit(-1) 之间的区别

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

我们是否exit statusSystem Error CodesMicrosoft 产品(Microsoft 网站)有直接联系?

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

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

这是个好主意吗?

你怎么看待这件事?还有其他想法吗?

例子:

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

因为(微软网站):

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

2 回答 2

8

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

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

但同样:如果没有批处理文件调用您的代码,则没有人会对退出状态做出反应,因此您可以返回任何您想要的东西,它不会有任何效果。

于 2013-10-13T20:24:19.600 回答
2

退出代码只是提供信息,可以基于您的设计。Microsoft 代码很重要,因为 MS 软件可能会尝试识别它们,同样在 Linux 上,有一组不同的预定义商定代码。使用其中一套不会有什么坏处。

于 2013-10-13T20:00:58.597 回答