美文网首页
自定义异常捕获 与 自定返回json 数据格式

自定义异常捕获 与 自定返回json 数据格式

作者: 刘小刀tina | 来源:发表于2020-02-20 12:25 被阅读0次

1. 自定义异常捕获

  1. 自定的异常
@Data
@AllArgsConstructor //生成有参构造函数
@NoArgsConstructor //生存无参构造函数
public class ZidingyiException extends  RuntimeException  {
    private Integer code ;//状态码
    private String message;//异常信息
}

2 捕获异常

/**
 * 捕获全局异常
 *
 **/
@ControllerAdvice //切面
public class GlobalExceptionHandler {

    //自定义异常
    @ExceptionHandler(ZidingyiException.class)//对所有的异常处理
    @ResponseBody
    public R error(ZidingyiException e){
        e.printStackTrace();
        //return e.getCode()+e.getMessage();
        return R.fail().code(ResultCode.ERROR).message("fail").data("item",null);
    }
    //定义捕获全局的异常
    @ExceptionHandler(Exception.class)//对所有的异常处理
    @ResponseBody
    public Object error(Exception e){
        e.printStackTrace();
        //return e.getMessage();
        return R.fail().code(ResultCode.ERROR).message("fail").data("item",null);
    }
}

========================================================

2. 自定返回json 数据格式

  1. 自定义两个code
public interface ResultCode {
    int SUCCESS = 200 ;
    int ERROR  = 500 ;
}
  1. 定义链式编程的返回json数据
/**
 * 自定义统一返回的json数据
 **/

@Data
@AllArgsConstructor
@NoArgsConstructor
public class R {

    private  Boolean success;

    private Integer code;

    private String message;

    private Map<String,Object> data = new HashMap<>();


    //返回失败的方法
    public  static  R fail(){
        R r = new R();
        r.setSuccess(false);
        r.setCode(ResultCode.ERROR);
        r.setMessage("失败");
        return  r;
    }


    //返回成功的方法
    public  static  R ok(){
        R r = new R();
        r.setSuccess(true);
        r.setCode(ResultCode.SUCCESS);
        r.setMessage("成功");
        return  r;
    }

    public R success(Boolean success){
        this.setSuccess(success);
        return  this;
    }


    public  R code(Integer code) {
        this.code = code;
        return this;
    }

    public R  message(String message) {
        this.message = message;
        return this;
    }

    public R  data(Map<String, Object> data) {
        this.data = data;
        return this;
    }

    public R  data(String key, Object value) {
        this.data.put(key,value);
        return this;
    }

}


相关文章

网友评论

      本文标题:自定义异常捕获 与 自定返回json 数据格式

      本文链接:https://www.haomeiwen.com/subject/amxxqhtx.html