文章目录
1 System.exit(int status)
1.1 System.exit(0)和System.exit(1)
System是一个类,它的exit(int status)方法用来结束当前正在运行的程序的虚拟机
public static void exit(int status) {
Runtime.getRuntime().exit(status);
}
System.exit(status)不管status为何值都会退出程序
参数只有两种:0和非0
0代表正常退出,非0代表异常退出
如在聊天室程序中,只点击关闭窗口那么窗口是消失了的,但程序仍在运行,当前程序还存在于内存中继续运行,而使用System.exit()方法则是将该Java程序的JVM直接关闭,内存中该程序相关信息全部被清除
1.2 System.exit(int status)的使用方式
在一个if-else判断中,如果我们程序是按照我们预想的执行,到最后我们需要停止程序,那么我们使用System.exit(0)
而System.exit(非0)一般放在catch块中,当捕获到异常,需要停止程序,使用System.exit(非0),这个status=1是用来表示这个程序是非正常退出
当使用System.exit(int status)时,程序结束时会返回一个值,即status的值
如:
这里将方法setId,改成了setd,导致出现异常执行了System.exit(-1),并且在控制台显示了-1,通过这种机制,可以在catch块中使用System.exit(非0),可以根据返回值来判断异常的类型
1.3 System.exit(int status)和return的区别
System.exit(int status)和return的不同点:
return是回到上一层,而System.exit(status)是回到最上层
return是方法执行完后的返回,return执行完后把控制权交给调用它的方法 如果是在主方法main中return, 就结束当前进程了,如果不是,那就是退回上一层调用
System.exit(int status)是将该程序的JVM关闭,结束整个进程