【问题标题】:System.exit(1) instead of returnSystem.exit(1) 而不是 return
【发布时间】:2014-09-25 02:34:24
【问题描述】:

刚刚在 Oracle 网站上找到了一个示例,如果控制台 == null,他们使用 System.exit(),但我不明白为什么它比简单的返回更好。 这是链接:http://docs.oracle.com/javase/tutorial/essential/regex/test_harness.html

【问题讨论】:

  • System.exit(int) 设置返回给运行进程的进程的错误级别,这为调用者提供了在调用因某种原因失败时采取适当措施的机会...

标签: java


【解决方案1】:

exit(1) 表示您正在退出系统,设置退出代码 = 1 表示程序错误终止

return; 将使用退出代码 = 0 终止该应用程序,这对调用者而言意味着程序已成功终止


另见

【讨论】:

  • 是的,我理解一些相对复杂的应用程序,但是Oracle在如此简单的教程类中使用它在我看来有点奇怪:)
  • 这是唯一的区别,可能代码是由长期留在c++的人编写的
【解决方案2】:

如果您从 bash 脚本调用您的 java 程序,并且您想对 java 程序的成功或失败做出相应的反应,则 System.exit(1) 会很有用。

【讨论】:

    【解决方案3】:

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

    但是,Return 被方法的执行线程使用,但如果使用 system.exit,线程将永远不会返回。所以它们是用于不同目的的两种不同的东西。

    请参阅 Java 7 Oracle 文档link

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-20
      • 1970-01-01
      • 2014-05-01
      • 2010-09-07
      • 1970-01-01
      • 2014-10-10
      • 2015-11-04
      • 2010-12-21
      相关资源
      最近更新 更多