笔记

万物寻其根,通其堵,便能解其困。
  博客园  :: 新随笔  :: 管理

spring boot 异常处理

Posted on 2024-05-27 10:32  草妖  阅读(3)  评论(0)    收藏  举报

全局异常

import java.util.HashMap;
import java.util.Map;

import org.springframework.http.converter.HttpMessageNotReadableException;
import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestControllerAdvice;

import com.lancoo.Web_FSCModule.bean.ApiResponse;

@RestControllerAdvice
public class GlobalExceptionConfig{
    /**
     * 等同关于下面两个
     * */
    @ResponseBody
    @ExceptionHandler({HttpMessageNotReadableException.class,MethodArgumentNotValidException.class})
    public ApiResponse<Object> handleException(Exception e) {
        ApiResponse<Object> reData= new ApiResponse<>();
        reData.setStatus(-1);
        reData.setData(null);
        reData.setStatusDescription(e.getMessage());
        Map<String,Integer> tempMap= new HashMap<>();
        tempMap.put("TotalCount", 0);
        reData.setDataCount(tempMap);
        return reData;
    }

    @ResponseBody
    @ExceptionHandler(HttpMessageNotReadableException.class)
    public ApiResponse<Object> handleException(HttpMessageNotReadableException e) {
        ApiResponse<Object> reData= new ApiResponse<>();
        reData.setStatus(-1);
        reData.setData(null);
        reData.setStatusDescription(e.getMessage());
        Map<String,Integer> tempMap= new HashMap<>();
        tempMap.put("TotalCount", 0);
        reData.setDataCount(tempMap);
        return reData;
    }
    
    @ResponseBody
    @ExceptionHandler(MethodArgumentNotValidException.class)
    public ApiResponse<Object> handleException(MethodArgumentNotValidException e) {
        String err = e.getBindingResult().getFieldError() != null ? e.getBindingResult().getFieldError().getDefaultMessage() : e.getMessage();
        ApiResponse<Object> reData= new ApiResponse<>();
        reData.setStatus(-1);
        reData.setData(null);
        reData.setStatusDescription(err);
        Map<String,Integer> tempMap= new HashMap<>();
        tempMap.put("TotalCount", 0);
        reData.setDataCount(tempMap);
        return reData;
    }
}