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

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

一、前言


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


二、效果展示


为了实现这个效果,我们就简单模拟,代码也比较简单,也有注释,就不过多说辞了。直接看代码和效果图吧!~


项目启动,初始化用户状态成功效果图


微信截图_20220520121453.png


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


微信截图_20220520121527.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)区别


文章小尾巴


文章写作、模板、文章小尾巴可参考:《写作“小心思”》


  感谢你看到最后,最后再说两点~


  ①如果你持有不同的看法,欢迎你在文章下方进行留言、评论。

  ②如果对你有帮助,或者你认可的话,欢迎给个小点赞,支持一下~


  我是南方者,一个热爱计算机更热爱祖国的南方人。


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



目录
打赏
0
0
0
0
0
分享
相关文章
Java 学习路线规划及项目案例中的技术栈应用解析
内容包括:**Java 17核心特性**(如sealed class、record)与模块化开发;Spring Boot 3 + Spring Cloud微服务架构,涉及响应式编程(WebFlux)、多数据库持久化(JPA、R2DBC、MongoDB);云原生技术**如Docker、Kubernetes及CI/CD流程;性能优化(GraalVM Native Image、JVM调优);以及前后端分离开发(Vue 3、Spring Boot集成)。通过全栈电商平台项目实战,掌握从后端服务(用户、商品、订单)到前端应用(Vue 3、React Native)的全流程开发。
77 9
Java 8 + 特性及 Spring Boot 与 Hibernate 等最新技术的实操内容详解
本内容涵盖Java 8+核心语法、Spring Boot与Hibernate实操,按考试考点分类整理,含技术详解与代码示例,助力掌握最新Java技术与应用。
22 2
Java 项目分层架构实操指南及长尾关键词优化方案
本指南详解基于Spring Boot与Spring Cloud的Java微服务分层架构,以用户管理系统为例,涵盖技术选型、核心代码实现、服务治理及部署实践,助力掌握现代化Java企业级开发方案。
51 2
Java 对象模型现代化实践 基于 Spring Boot 与 MyBatis Plus 的实现方案深度解析
本文介绍了基于Spring Boot与MyBatis-Plus的Java对象模型现代化实践方案。采用Spring Boot 3.1.2作为基础框架,结合MyBatis-Plus 3.5.3.1进行数据访问层实现,使用Lombok简化PO对象,MapStruct处理对象转换。文章详细讲解了数据库设计、PO对象实现、DAO层构建、业务逻辑封装以及DTO/VO转换等核心环节,提供了一个完整的现代化Java对象模型实现案例。通过分层设计和对象转换,实现了业务逻辑与数据访问的解耦,提高了代码的可维护性和扩展性。
57 1
Java 大学期末实操项目在线图书管理系统开发实例及关键技术解析实操项目
本项目基于Spring Boot 3.0与Java 17,实现在线图书管理系统,涵盖CRUD操作、RESTful API、安全认证及单元测试,助力学生掌握现代Java开发核心技能。
27 0
一个完整 Java 项目常包含的各层次详解与全面解析
本内容介绍了Java项目的典型分层架构,涵盖开放接口层、终端显示层、Web层、Service层、Manager层、Mapper层及常用辅助层次,如实体层、DTO层、VO层等。通过合理划分各层职责,结合Spring Boot等框架,实现系统的高内聚、低耦合,提升可维护性与扩展性,适用于微服务与MVC架构设计。
88 0
|
1月前
|
解决Java Spring Boot应用中MyBatis-Plus查询问题的策略。
保持技能更新是侦探的重要素质。定期回顾最佳实践和新技术。比如,定期查看MyBatis-Plus的更新和社区的最佳做法,这样才能不断提升查询效率和性能。
85 1

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问