系统差异。exit(0) , System.exit(-1), System.exit(1) 在 Java 中

2022-08-31 05:07:54

我想知道Java中的以下内容之间的区别

System.exit(0);
System.exit(-1);
System.exit(1);

我什么时候必须适当地使用上述代码?


答案 1

exit 参数应符合程序执行是好是坏。这是一种来自旧编程语言的遗传,在旧编程语言中,知道是否出了问题以及出了什么问题很有用。

退出代码为

  • 0当执行顺利时;
  • 1、,当发生某些错误时,您可以对不同类型的错误使用不同的值。-1whatever != 0

如果我是正确的,退出代码曾经只是正数(我的意思是在UNIX中),并且根据范围:

  • 1-127是用户定义的代码(因此通过调用生成exit(n))
  • 128-255是由不同的unix信号(如SIGSEGVSIGTERM)终止生成的代码

但是我不认为你应该在Java上编码时关心,它只是一些信息。如果您计划使程序与标准工具进行交互,这将非常有用。


答案 2

Zero=> 一切都好

Positive=> 我预期可能出错的东西出错了(命令行错误,找不到文件,无法连接到服务器)

Negative=> 我完全没有想到的事情出错了(系统错误 - 意外的异常 - 外部强制终止,例如kill -9)

(大于 128 的值实际上是负数,如果您将其视为 8 位有符号二进制或二进制补码)

这里有一堆很好的标准退出代码


推荐