Java SE 拓展篇 P4 关于System.exit(int status)

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关闭,结束整个进程

猜你喜欢

转载自blog.csdn.net/weixin_43541094/article/details/113345979