全局拦截器,处理异常,返回json格式的提示信息

@controllerAdvice注解,表示这个类是一个异常处理控制器

@ExceptionHandler注解,表明需要拦截的异常种类,用value进行标明

示例代码:

/**
 * 异常同一处理拦截器
 *
 * @author jiajia
 */
@ControllerAdvice
@ResponseBody
@Log4j
public class ExceptionFilter{

    @ExceptionHandler(value = Exception.class)
    public ResultWrapperDto<?> allExceptionHandler(Exception e){
        log.error(e.getMessage());
        ResultWrapperDto resultWrapperDto;
        resultWrapperDto = ResultWrapperUtil.initResultWrapper(MessageConstants.MESSAGE_CODE.get(e.getMessage()), StatusCodeConstants.FAILURE_MSG, e.getMessage());
        return resultWrapperDto;
    }

}
 
 

我这里的 

ResultWrapperDto  是一个封装的返回对象,并不是重点

加上@responseBody注解,从e中拿到错误信息,像普通控制层一样,返回即可

这是普通的示例:

/**
 * 异常同一处理拦截器
 *
 * @author jiajia
 */
@ControllerAdvice
public class ExceptionFilter{
    @ExceptionHandler(value = Exception.class)
    @ResponseBody
    public Map<String, Object> allExceptionHandler(Exception e){
        Map<String, Object> map = new HashMap<>(2);
        map.put("code", StatusCodeConstants.FAILURE_CODE);
        map.put("message", e.getMessage());
        return map;
    }
}

技术参考在:http://www.jb51.net/article/134966.htm


猜你喜欢

转载自blog.csdn.net/qq_34468174/article/details/80176103