【JAVA】【SpringBoot】当重新启动项目的时候,需要把用户一些状态回退,但是回退失败了,项目却没有停止,可以用System.exit(1);

942 阅读2分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第2天,点击查看活动详情

一、前言

当重新启动项目的时候,需要把用户一些状态回退,但是回退失败了,项目却没有停止,可以用System.exit(1); 来使项目停止。

二、效果展示

为了实现这个效果,我们就简单模拟,代码也比较简单,也有注释,就不过多说辞了。直接看代码和效果图吧!~
项目启动,初始化用户状态成功效果图

image.png

项目启动,初始化用户状态失败效果图 image.png

三、完整代码

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class Demo {

	public static void main(String[] args) {
		System.out.println("南方者-掘金的测试项目启动");
		System.out.println("初始化MySQL数据");
		System.out.println("用户状态回退");
		String userName = "用户";
		String statusName = "状态";
		try {
			// 假设这是用户列表,一个map对应一个用户
			List<Map<String, String>> userStatusList = new ArrayList<Map<String, String>>();
			for (int i = 1; i < 6; i++) {
				// 一个map对应一个用户,key:用户;value:用户状态
				Map<String, String> userMap = new HashMap<String, String>();
				userMap.put(userName + i, statusName + i);
				userStatusList.add(userMap);
			}
			for (int i = 0; i < 5; i++) {
				userStatusList.get(i).put(userName + i, statusName + 0);
				throw new Exception("抛出异常"); // 抛出异常(假装过程中出现异常)
			}
			System.out.println(userStatusList);
			System.out.println("状态回退成功");
			System.out.println("南方者 - 掘金  https://juejin.cn/user/2840793779295133");
		} catch (Exception e) {
			e.printStackTrace();
			System.out.println("状态回退异常,初始化失败,项目已停止");
			System.out.println("南方者 - 掘金  https://juejin.cn/user/2840793779295133");
			System.exit(1);
		}
	}
}

四、额外小知识 System.exit(0);和System.exit(1)、System.exit(2)、...System.exit(n)的区别

System.exit(0) 是正常退出程序.
System.exit(1)、System.exit(2)、...System.exit(n) 都是非0情况,其实就是表示非正常退出程序.

其实实际效果是没有区别的

在一个if-else判断中,如果我们程序是按照我们预想的执行,到最后我们需要停止程序,那么我们使用System.exit(0),而System.exit(1)一般放在catch块中,当捕获到异常,需要停止程序,我们使用System.exit(1)。(摘抄来源:# System.exit(0)和System.exit(1)区别

文章小尾巴

文章写作、模板、文章小尾巴可参考:《写作“小心思”》
  感谢你看到最后,最后再说两点~
  ①如果你持有不同的看法,欢迎你在文章下方进行留言、评论。
  ②如果对你有帮助,或者你认可的话,欢迎给个小点赞,支持一下~
  我是南方者,一个热爱计算机更热爱祖国的南方人。

  (文章内容仅供学习参考,如有侵权,非常抱歉,请立即联系作者删除。)