springboot返回结果封装和异常处理

  1. 返回结果封装

    新建封装类

    public class ResultResponse<T> implements Serializable {
    
        private String code;
    
        private String message;
    
        private T date;
    
        public String getCode() {
            return code;
        }
    
        public void setCode(String code) {
            this.code = code;
        }
    
        public String getMessage() {
            return message;
        }
    
        public void setMessage(String message) {
            this.message = message;
        }
    
        public T getDate() {
            return date;
        }
    
        public void setDate(T date) {
            this.date = date;
        }
    
        public static ResultResponse success() {
            ResultResponse resultResponse = new ResultResponse();
            resultResponse.setCode("0000");
            return resultResponse;
        }
        
        public static ResultResponse success(Object date) {
            ResultResponse resultResponse = new ResultResponse();
            resultResponse.setCode("0000");
            resultResponse.setMessage("成功");
            resultResponse.setDate(date);
            return resultResponse;
        }
    
        public static ResultResponse fail(String code, String message) {
            ResultResponse resultResponse = new ResultResponse();
            resultResponse.setCode(code);
            resultResponse.setMessage(message);
            return resultResponse;
        }
    

controller中返回数据使用ResultResponse包装,返回结果如下

{
  "code": "0000",
  "message": "成功",
  "date": ""
}
  1. 异常处理

    新建异常处理类,使用@RestControllerAdvice和@ExceptionHandler注解捕获各种异常

    @RestControllerAdvice注解作用于所有使用@RestController修饰的控制类

    @ExceptionHandler注解用于作用的异常类型

    @RestControllerAdvice
    public class GlobalExceptionHandler {
    
        @ExceptionHandler(Exception.class)
        @ResponseStatus(HttpStatus.BAD_REQUEST)
        public ResultResponse handle(Exception exception) {
            return ResultResponse.fail("-1", getMsg(exception));
        }
    
        private static String getMsg(Exception e) {
            StackTraceElement[] stackTrace = e.getStackTrace();
            StringBuffer sb = new StringBuffer();
            sb.append(e.toString()).append("\r\n");
            for (StackTraceElement stackTraceElement : stackTrace) {
                sb.append("\tat ").append(stackTraceElement.getClassName()).append(".")
                        .append(stackTraceElement.getMethodName())
                        .append("(").append(stackTraceElement.getFileName()).append(":").append(stackTraceElement.getLineNumber())
                        .append(")\r\n");
            }
            return sb.toString();
        }
    }
    

​ 可以自建异常类,手动抛出异常,@ExceptionHandler也可捕获

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值