2014-09-25 49 views
2

的只是发现甲骨文的网站为例,他们使用System.exit()的,如果控制台是== NULL,但我不明白为什么它比简单的回报更好。 这里的链接:http://docs.oracle.com/javase/tutorial/essential/regex/test_harness.htmlSystem.exit(1),而不是回报

+1

'System.exit(int)'将错误级别设置返回到运行进程的进程,这为主叫方提供了在由于某种原因导致调用失败时采取适当操作的机会... – MadProgrammer 2014-09-25 02:36:42

回答

3

exit(1)意味着你从系统退出并设置退出代码= 1表示该程序的错误终止

return;将终止,退出代码= 0,即应用程序,它给调用者装置的程序成功


终止请参见

+1

yes,I理解它的情况下,一些相对复杂的应用程序,但由Oracle在这样简单的教程类使用它在我看来有点奇怪:) – skwisgaar 2014-09-25 03:02:32

+0

这是唯一的区别,可能代码是从长期来自C++ – 2014-09-25 03:22:26

1

System.exit,如果你打电话给你的java程序允许用户从一个bash脚本说,你想做出相应的反应,以Java程序的成功或失败(1)可能是有用的。

1

System.exit将关闭所有执行的线程,关闭文件,释放资源,等...它终止JVM。

然而,回报是通过在方法的执行线程使用,但如果使用system.exit,一个线程将不会再回来。所以它们是用于不同目的的两种不同的东西。

,请参阅Java 7甲骨文文件link

0

语句使用的方法里面来的吧。 System.exit(0)的任何方法被用来出来的方案。
System.exit(0)以最终方式终止程序。由于程序遇到一些错误,因此System.exit(1)终止程序。