JAVA - System.exit()方法

原型:System.exit(int status)

其功能主要是调用Runtime.getRuntime().exit(status);

作用是终止当前正在运行的Java虚拟机,这个status表示退出的状态码,非零表示异常终止。(可以返回给其他进程的调用者一个调用的返回码,以根据返回码采取不同的策略。)

注意:不管status为何值程序都会退出,和return 相比有不同的是:return是回到上一层,而System.exit(status)是回到最上层。


System.exit(0): 

  • 正常退出,程序正常执行结束退出,Java GC进行垃圾回收,直接退出。
  • 在Swing开发中,一般用于Swing窗体关闭按钮。(重写windowClosing方法时调用System.exit(0)来终止程序,Window类的dispose()方法只是关闭窗口,并不会让程序退出)。

System.exit(1): 

  • 是非正常退出,就是说无论程序正在执行与否,都退出.
  • 如果为非0的话,如果这个方法被调用后,虚拟机已开始关闭序列如果关闭钩子正在运行,此方法将无限期阻塞。如果关将钩子运行完成,并且未调用的finalizers,finalization-on-exit允许的情况下启动回收完成,虚拟机停止。
  • 一般在catch块中会使用(例如使用Apache的FTPClient类时,源码中推荐使用System.exit(1)告知连接失败),当程序会被脚本调用、父进程调用发生异常时需要通过System.exit(1)来告知操作失败,默认程序最终返回的值返是0,即然发生异常默认还是返回0,因此在这种情况下需要手工指定返回非零。

猜你喜欢

转载自blog.csdn.net/bupa900318/article/details/80330167