SpringBoot2.0 浅谈注解@ControllerAdvice的作用

我们都知道做项目一般都会有全局异常统一处理的类,那么这个类在Spring中可以用@ControllerAdvice来实现,费话不多说,先看代码:


import org.springframework.ui.Model;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.*;
 
import java.util.HashMap;
import java.util.Map;
 
/**
 * rest controller 异常捕捉
 *
 * @author sam
 * @since 2017/7/17
 */
@ControllerAdvice
public class MyControllerAdvice {
 
    /**
     * 全局异常捕捉处理
     * @param ex
     * @return
     */
    @ResponseBody
    @ExceptionHandler(value = Exception.class)
    public Map errorHandler(Exception ex) {
        Map map = new HashMap();
        map.put("code", 400);
        map.put("msg", ex.getMessage());
        return map;
    }
    
    /**
     * 全局捕捉自定义异常(凡是抛出MyException的异常都会走这里)
     * @param ex
     * @return
     */
    @ResponseBody
    @ExceptionHandler(value = MyException.class)
    public Map myErrExceptionHandler(MyException ex) {
        Map map = new HashMap();
        map.put("code", 400);
        map.put("msg", ex.getMsg());
        return map;
    }
}

 

posted @ 2019-01-23 17:50  坐看云起时_雨宣  阅读(743)  评论(0编辑  收藏  举报