实现一个全局处理类,并对异常进行判断处理
方法有如下几种
1.实现HandlerExceptionResolver接口,实现其中的resolveException()方法。
public class GlobalExceptionResolver implements HandlerExceptionResolver {
@Override
public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {
if (ex instanceof BindException) {
//返回一个自定义的view
}
return null;
}
}
2.继承AbstractHandlerExceptionResolver类,重写
resolveException()方法。
public class GlobalExceptionResolver extends AbstractHandlerExceptionResolver {
@Override
public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {
if (ex instanceof BindException) {
//返回一个自定义的view
}
return null;
}
}
3.基于注解@ControllerAdvice或者@RestControllerAdvice+ @ExceptionHandler
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;
@RestControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(value = BindException.class)
public ModelAndView handleBindException(BindException e) {
//返回自定义的model
}
}