【问题标题】:When to use system.exit(0)? [duplicate]何时使用 system.exit(0)? [复制]
【发布时间】:2012-10-15 10:03:49
【问题描述】:

可能重复:
Difference in System. exit(0) , System.exit(-1), System.exit(1 ) in java

谁能解释一下system.exit(0)的用法?
当我们调用这个方法,尤其是参数值时,内部会发生什么? 0,1,2,3..等

【问题讨论】:

  • 除了答案提供的信息外,还需要补充以下几点:除非你特别,否则根本不要打电话给System.exit需要Java进程报错码。该用例非常罕见,您很可能会无缘无故地致电System.exitSystem.exit 是一种非常原始、低级且不安全的方式来结束您的程序。它stops 所有线程都在他们正在做的任何事情的中间,让他们没有机会清理。我还没有写出我的第一个使用这个调用的生产质量应用程序。
  • 这不是那个问题的重复。

标签: java core


【解决方案1】:

System.exit 将要求VM 进程停止,返回的代码将是参数中给出的代码。常见代码有:0 表示成功,1 到 127 表示错误,128-255 被 Unix 使用并映射到信号。

【讨论】:

    【解决方案2】:

    System.exit(int) 关闭 JVM,提供 0 的“退出代码”。

    退出码是JVM进程的返回值。

    通常在 Unix 系统中,退出代码 0 表示正常关闭,任何非零都表示关闭是由错误引起的。

    更多信息请参见维基百科:

    http://en.wikipedia.org/wiki/Exit_status

    【讨论】:

      【解决方案3】:

      System.exit 的输入是您的错误代码。值为 0 表示正常退出。非零数字表示异常终止。这个数字可以由你决定。也许如果你想在无法读取文件的情况下退出,你可以使用错误代码 =1,如果你无法从套接字读取,则可能是错误代码 = 2。

      System.exit 将终止 VM 和你的程序。

      一个典型的例子如下。如果 runMyApp 在您想要导致程序退出的地方抛出异常。

      public static void main(String... args) {
         try {
            runMyApp();
         } catch (Exception e) {
            System.exit(1);
         }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-07-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-01-18
        • 2013-10-18
        • 1970-01-01
        相关资源
        最近更新 更多