Java里面System. exit(0) , System.exit(-1), System.exit(1 )的不同| Java Debug 笔记

267 阅读1分钟

本文正在参加「Java主题月 - Java Debug笔记活动」,详情查看 活动链接

问题:Java里面System. exit(0) , System.exit(-1), System.exit(1 )的不同

在Java里,我想知道下面几个的区别

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

我应该什么时候使用上述代码?

回答

exit的参数应该是决定于程序的执行是好是坏的。这是一种从较老的编程语言中继承而来的,在这些语言中,知道什么地方出错了以及出什么错了是很有用的。

退出代码

  • 执行正常时为0;

  • 当某些错误发生时,可以使用不同的值来处理不同类型的错误。

如果是正确的,退出码通常是正数(我的意思是在UNIX中),根据范围:

  • 1-127为用户自定义代码(通过调用exit(n)生成)

  • 128-255是由于不同的unix信号如SIGSEGV或SIGTERM而产生的终止代码

但我认为在Java上编写代码时不应该太在意,这只是一些信息。如果你计划让你的程序与标准工具交互,这将非常有用。

回答二

0 =>一切正常

正数=> 我预期的可能出错的地方出了问题(错误的命令行,找不到文件,无法连接到服务器)

负数=> 我没有料到的地方出了问题(系统错误-意外异常-外部强制终止,例如kill -9)

(大于128的值实际上是负数,如果你把它们看作8位有符号二进制,或2进制补码)

这里有很多标准的退出码

文章翻译自Stack Overflow:stackoverflow.com/questions/2…