springboot统一异常处理

异常注解介绍:

@ControllerAdvice 如果是返回json数据 则用 RestControllerAdvice,就可以不加 @ResponseBody

@ExceptionHandler(value=Exception.class //捕获全局异常,处理所有不可知的异常

  1. 创建一个自定义异常
/**
 * 自定义异常
 */
public class MyException extends Exception{
    public MyException(String message){
        super(message);
    }
}

  1. 在TestController中增加测试异常的映射,抛出MyException异常
 
 /**
     * 异常测试接口
     * @return
     * @throws MyException
     */
    @RequestMapping("/testException")
    public String testException() throws MyException {
        System.out.println("测试异常");
        throw new MyException("我的异常");

    }


  1. 创建一个全局处理异常的类

    @ControllerAdvice定义全局异常处理类
    @ExceptionHandler指定自定义错误处理方法拦截的异常类型
    @ResponseBody返回JSON类型的数据
    /**
     * 处理异常类
     * @ControllerAdvice 注解定义全局异常处理类
     *
     * @ExceptionHandler 指定自定义错误处理方法拦截的异常类型
     *
     * @ResponseBody 指返回JSON类型的数据
     */
    @ControllerAdvice
    public class GlobalMyExceptionHandler {
    
        @ExceptionHandler(value = Exception.class)
        @ResponseBody
        public Object handlerException(HttpServletRequest request, MyException e) {
    
            Map<String, Object> map = new HashMap<>();
            map.put("code", -1);
            map.put("msg", e.getMessage());
            map.put("url", request.getRequestURI());
            return map;
        }
    }
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值