catch语句中的System.exit(1);

catch语句中的System.exit(1);

catch语句中的System.exit(1);是用来终止程序的,exit后面括号里的参数填非0的整数代表的是异常终止吗?

如果我在括号里写了0,那么4-8课程里的代码运行会出错吗?

终止分异常和自然吗

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,1、System.exit(status)不管status为何值都会退出程序,System.exit(1)或者说非0是用来表示非正常的退出程序!

2、例如,在一个switch语句中,使用System.exit(0);  表示当这个条件成立时,退出程序

Scanner sc=new Scanner(System.in);
	while(true){
		System.out.println("请输入");
		int input=sc.nextInt();
		switch (input) {
			case 1:
				System.out.println("得到的输出结果是1");
				break;

			case 0:
				System.out.println("退出程序");
				System.exit(0);
		    }
		}

这是当条件成立,正常退出程序

3、System.exit(int  status);方法是终止程序运行,status是非零参数,那么表示是非正常退出,status是零,那么表示是正常退出-->这个方法是用来结束当前正在运行中的java虚拟机。

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~


  • 鱼儿0001 提问者 #1
    谢谢老师的耐心回复。我仔细看了你的回复,并且也手动打了你写的代码。其实,还是对System.exit()这个括号里的参数是非0和0的区别不理解。感觉功能完全相同。老师,我在这个问题问过:如果我在括号里写了0,那么4-8课程里的代码运行会出错吗?也就是在catch语句里写了System.exit(0)行吗
    2019-06-09 14:54:28
  • 好帮手慕珊 回复 提问者 鱼儿0001 #2
    从我们可以看到的效果看,System.exit(0)和System.exit(1)是相同的,看到我们的程序都退出了。但是从底层看,exit(0)是正常退出程序,application应用程序都停止了,所占用的内存也都释放了。4-8代码写exit(0)也不会出错,但是异常发生属于非正常退出,所以我们写exit(1)更合适。祝学习愉快!
    2019-06-09 19:36:06
  • 鱼儿0001 提问者 回复 好帮手慕珊 #3
    好的,谢谢老师!
    2019-06-10 14:38:06
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师