Spring Boot笔记-@ExceptionHandler拦截500服务器错误自定义数据回前端

如下代码:

package com.xxxx.xxxx.handler;

import com.xxxx.xxxx.utils.ResultUtil;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.HashMap;
import java.util.Map;

@ControllerAdvice
public class ApcExceptionHandler {

    @ExceptionHandler(value = Exception.class)
    @ResponseBody
    public Object errorHandler(HttpServletRequest request, Exception e)
            throws Exception{

        e.printStackTrace();

        Map<String, String> map = new HashMap<>();
        map.put("exception", e.toString());
        map.put("url", request.getRequestURL().toString());

        return ResultUtil.error(map);
    }
}

ResultUtil.java如下:

package com.xxxxx.xxxxx.utils;
import com.xxxxx.xxxxx.xxxxx.ResultVO;

public class ResultUtil {

    public static ResultVO success(Object object){

        ResultVO resultVO = new ResultVO();
        resultVO.setCode(200);
        resultVO.setMsg("成功");
        resultVO.setData(object);
        return resultVO;
    }

    public static ResultVO error(Object object){

        ResultVO resultVO = new ResultVO();
        resultVO.setCode(404);
        resultVO.setMsg("失败");
        resultVO.setData(object);
        return resultVO;
    }
}

运行截图如下,还是比较人性化的:

发布了1312 篇原创文章 · 获赞 2429 · 访问量 185万+

猜你喜欢

转载自blog.csdn.net/qq78442761/article/details/104650869