Custom exception interception in the springboot project

Operational information for packaging processing

Result.java

package com.zhshhypt.util;
/**
 *  @Description:对返回结果进行分装
 *  @Author: cyz
 *  @Date: 2021/6/15 0015
 */

public class Result {
    
    

    public static String ERROR_CODE="400";
    public static String SUCCESS_CODE="200";
    public String msg="操作成功!";
    public String status=SUCCESS_CODE;
    public Object data=null;

    public Result() {
    
    
    }
    //成功返回状态,消息,数据
    public static Result ok(Object data){
    
    
        return new Result("操作成功!","200",data);
    }
    //失败返回消息和状态
    public static Result fail(String msg){
    
    
        msg="操作失败!";

        return new Result(msg,ERROR_CODE,null);
    }
    //构造只返回状态和消息
    public Result(String msg, String status) {
    
    
        this.msg = msg;
        this.status = status;
    }

    //构造返回消息状态数据
    public Result(String msg, String status, Object data) {
    
    
        this.msg = msg;
        this.status = status;
        this.data = data;
    }

    public String getMsg() {
    
    
        return msg;
    }

    public String getStatus() {
    
    
        return status;
    }

    public Object getData() {
    
    
        return data;
    }

    public void setMsg(String msg) {
    
    
        this.msg = msg;
    }

    public void setStatus(String status) {
    
    
        this.status = status;
    }

    public void setData(Object data) {
    
    
        this.data = data;
    }
}

Controller layer

/**
 * <p>
 * 前端控制器
 * </p>
 *
 * @author jobob
 * @since 2021-05-29
 */
@RestController
@RequestMapping("/teach")
public class TeachController  extends BaseControl {
    
    
    @Resource
    private ITeachService iTeachService;
    @RequestMapping(value = "/getData")
    public Result getData() {
    
    
        List<Teach> list = iTeachService.selectList(null);
        JSONArray jsonArray = JSONArray.fromObject(list);
        System.out.println(1/0);//程序中会运行报错。则进行全局异常拦截。
        return Result.ok(jsonArray);
    }
 }

Handle exceptions (global configuration)

package com.zhshhypt.util;/**
 * @description:
 * @author: cyz
 * @time: 2021/6/15 0015
 */

import com.zhshhypt.util.Result;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;

/**
 *  @Description:控制类拦截异常处理
 *  @Author: cyz
 *  @Date: 2021/6/15 0015
 */
@ControllerAdvice
public class MyControllerAdvice {
    
    

    @ExceptionHandler(RuntimeException.class)
    @ResponseBody
    public Result handle(RuntimeException exception){
    
    
        return Result.fail(exception.getMessage());
    }
}

Both the service layer and the mapper layer use mybatis-plus reverse engineering, and no redundant introduction will be given here;
the test is carried out by postman
insert image description here
.

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=324354443&siteId=291194637