异常信息返回json数据
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Configuration;
import org.springframework.validation.BindException;
import org.springframework.validation.ObjectError;
import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.servlet.HandlerExceptionResolver;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.view.json.MappingJackson2JsonView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@Configuration
@Slf4j
public class GlobalException implements HandlerExceptionResolver {
@Override
public ModelAndView resolveException(HttpServletRequest httpServletRequest, HttpServletResponse response, Object o, Exception e) {
ModelAndView mv = new ModelAndView();
MappingJackson2JsonView view = new MappingJackson2JsonView();
mv.setView(view);
if(e instanceof MethodArgumentNotValidException){//spring validation校验器验证参数
MethodArgumentNotValidException methodArgumentNotValidException = (MethodArgumentNotValidException) e;
for (ObjectError objectError : methodArgumentNotValidException.getBindingResult().getAllErrors()){
mv.addObject("status", 1001);
mv.addObject("msg", objectError.getDefaultMessage());
return mv;
}
}
if(e instanceof BindException){//spring validation校验器验证参数
BindException be = (BindException) e;
for (ObjectError objectError : be.getBindingResult().getAllErrors()){
mv.addObject("status", 1001);
mv.addObject("msg", objectError.getDefaultMessage());
return mv;
}
}
// response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
log.error("异常信息:",e);
mv.addObject("status", HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
mv.addObject("msg", "系统异常");
return mv;
}
}