记录一下springMVC的异常处理方法,好脑子不如烂笔头
1,没有使用全局异常
2,使用全局异常
@sl4j注解使用的是lombok
@Component则是将此类交给spring容器处理
jackson的依赖使用的是
<dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-mapper-asl</artifactId> <version>1.9.12</version> </dependency>
@Slf4j
@Component
public class ExceptionResolver implements HandlerExceptionResolver{
@Override
public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response,
Object o, Exception exception) {
log.error("{} Exception",request.getRequestURI(),exception);
//当使用时jackson2.x的时候 使用MappingJackson2JsonView,当前使用的是1.9
ModelAndView modelAndView = new ModelAndView(new MappingJacksonJsonView());
modelAndView.addObject("status",ResponseCode.ERROR.getCode());
modelAndView.addObject("msg","接口异常");
modelAndView.addObject("data", exception.toString());
return modelAndView;
}
}
public enum ResponseCode {
SUCCESS(0,"SUCCESS"),
ERROR(1,"ERROR"),
NEED_LOGIN(10,"NEED_LOGIN"),
ILLEGAL_ARGUMENT(2,"ILLEGAL_ARGUMENT");
private final int code;
private final String desc;
ResponseCode(int code,String desc){
this.code = code;
this.desc = desc;
}
public int getCode(){
return code;
}
public String getDesc(){
return desc;
}
}