Springboot集成自定义异常类(企业实战)

一说明

  1. 会使用枚举
  2. 熟悉面向切面编程思想
  3. 熟悉枚举
  4. 熟悉异常
  5. 了解springboot基本知识
  6. 熟悉基本项目搭建,在演示文档中省略该步骤
  7. springboot 2.0 , jdk1.8,构建工具idea

二 自定义异常类

作者只能说简洁明了直接撸代码。

2.1 在pom文件中引入相关依赖

 
        
        
            org.springframework.boot
            spring-boot-starter-web
        
        
            org.projectlombok
            lombok
            1.16.18
            provided
        
    

2.2 使用枚举自定义异常类消息

/*
 * @Author lsc
 * @Description  

异常消息

* @Date 2019/10/9 20:28 * @Param * @return **/ @AllArgsConstructor//全参构造 @NoArgsConstructor//空参构造 public enum CodeMsg { SUCESS(200,"sucess"), SERVER_ERROR(500,"服务端异常"), Request_Error(404,"请求异常"); // 错误消息码 private Integer code; // 错误消息提示 private String msg; public Integer getCode() { return code; } public void setCode(Integer code) { this.code = code; } public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; } }

2.3使用自定义异常集成RuntimeException

/**
 * @Author lsc
 * @Description 

自定义通用异常

* @Date 2019/10/9 20:39 * @Version 1.0 */ @NoArgsConstructor @AllArgsConstructor @Data public class CommonException extends RuntimeException { // 序列化号 private static final long serialVersionUID = 132719492019L; // 引入自定义异常消息 private CodeMsg codeMsg; }

2.4 编写页面返回实体类

/**
 * @Author lsc
 * @Description 

返回的页面

* @Date 2019/10/9 20:35 * @Version 1.0 */ @Data//set get 等方法 @AllArgsConstructor @NoArgsConstructor public class ResultPage { // 状态码 private Integer code; // 消息提示 private String msg; // 存放的数据 private T data; ResultPage(Integer code,String msg) { this.code=code; this.msg=msg; this.data=data; } // 成功的时候调用 public static ResultPage sucess(CodeMsg codeMsg,T data){ return new ResultPage(codeMsg.getCode(),codeMsg.getMsg(),data); } //失败的时候调用 public static ResultPage error(CodeMsg codeMsg){ return new ResultPage(codeMsg.getCode(),codeMsg.getMsg()); } }

2.5异常捕获

/*
 * @Author lsc
 * @Description  

异常捕获

* @Date 2019/10/9 20:42 * @Param * @return **/ @ControllerAdvice @Configuration public class CommonExceptionHandler { // 捕获CommonException异常 @ExceptionHandler(value = CommonException.class) @ResponseBody public ResponseEntity CommonExceptionHandler(CommonException e){ // 获得异常消息 CodeMsg codeMsg = e.getCodeMsg(); // 设置错误消息页面返回 return ResponseEntity.status(HttpStatus.OK).body(ResultPage.error(codeMsg)); } // 下面还可以自定义捕获其他异常比如 非法参数异常 运算异常 等等....... }

2.6 controller层

/**
 * @Author lsc
 * @Description 

控制层

* @Date 2019/10/9 20:57 * @Version 1.0 */ @RestController public class YouKu1327Controller { @GetMapping("/youku1327/api/excetion") public ResultPage testException(){ // 示范 抛出自定义异常 throw new CommonException(CodeMsg.Request_Error); } /* * @Author lsc * @Description

成功消息

* @Date 2019/10/9 21:21 * @Param [] * @return org.springframework.http.ResponseEntity **/ @GetMapping("/youku1327/api/sucess") public ResponseEntity testSucess(){ ArrayList list = new ArrayList<>(); HashMap hashMap = new HashMap<>(); hashMap.put("youku1327","欢迎关注博客和微信号"); list.add(hashMap); return ResponseEntity.ok().body(ResultPage.sucess(CodeMsg.SUCESS,list)); } }

2.7 启动类

/**
 * @Author lsc
 * @Description 

自定义异常启动类

* @Date 2019/10/9 20:56 * @Version 1.0 */ @SpringBootApplication public class ExceptionApplication { public static void main(String[] args) { SpringApplication.run(ExceptionApplication.class,args); } }

三启动项目页面请求测试

3.1 测试异常
Springboot集成自定义异常类(企业实战)_第1张图片

3.2测试成功

Springboot集成自定义异常类(企业实战)_第2张图片

你可能感兴趣的:(Springboot集成自定义异常类(企业实战))