一、对程序的结果进行统一返回
创建接口,定义返回码
package com
.atguigu
.commonutils
;
public interface ResultCode {
public static Integer SUCCESS
= 20000;
public static Integer ERROR
= 20001;}
创建实体类
public class Result {
@ApiModelProperty(value
= "是否成功")
private Boolean success
;
@ApiModelProperty(value
= "返回码")
private Integer code
;
@ApiModelProperty(value
= "返回消息")
private String message
;
@ApiModelProperty(value
= "返回数据")
private Map
<String, Object> data
= new HashMap<String, Object>();
private R(){}
public static Result
ok(){
Result r
= new Result ();
r
.setSuccess(true);
r
.setCode(ResultCode
.SUCCESS
);
r
.setMessage("成功");
return r
;
}
public static Result
error(){
Result r
= new Result ();
r
.setSuccess(false);
r
.setCode(ResultCode
.ERROR
);
r
.setMessage("失败");
return r
;
}
public Result
success(Boolean success
){
this.setSuccess(success
);
return this;
}
public Result
message(String message
){
this.setMessage(message
);
return this;
}
public Result
code(Integer code
){
this.setCode(code
);
return this;
}
public Result
data(String key
, Object value
){
this.data
.put(key
, value
);
return this;
}
public Result
data(Map
<String, Object> map
){
this.setData(map
);
return this;
}
}
二、统一异常处理
对程序运行可能产生的异常进行处理
统一异常处理
@ControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(Exception
.class)
@ResponseBody
public Result
error(Exception e
){
e
.printStackTrace();
return Result
.error();
}
}
处理特定异常
@ExceptionHandler(ArithmeticException
.class)
@ResponseBody
public Result
error(ArithmeticException e
){
e
.printStackTrace();
return Result
.error().message("执行了自定义异常");
}
自定义异常
先创建实体类
@Data
@AllArgsConstructor
@NoArgsConstructor
public class GuliException extends RuntimeException {
@ApiModelProperty(value
= "状态码")
private Integer code
;
private String msg
;
}
在全局异常处理类中添加方法
@ExceptionHandler(GuliException
.class)
@ResponseBody
public Result
error(GuliException e
){
e
.printStackTrace();
return Result
.error().message(e
.getMsg()).code(e
.getCode());
}
转载请注明原文地址: https://lol.8miu.com/read-7777.html