Spring MVC提供了多种方式来处理异常,包括基于配置和基于注解的异常处理。
基于配置的异常处理步骤如下:
- 创建一个异常处理类,实现
HandlerExceptionResolver接口。
import org.springframework.web.servlet.HandlerExceptionResolver;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class CustomHandlerExceptionResolver implements HandlerExceptionResolver {
@Override
public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("exception", ex);
modelAndView.setViewName("error");
return modelAndView;
}
}
- 在Spring配置文件中配置异常处理类。
<bean id="handlerExceptionResolver" class="com.example.CustomHandlerExceptionResolver"/>
基于注解的异常处理步骤如下:
- 创建一个Controller类,并在方法上使用
@ExceptionHandler注解来处理异常。
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
@ControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(Exception.class)
public ModelAndView handleException(Exception ex) {
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("exception", ex);
modelAndView.setViewName("error");
return modelAndView;
}
}
- 在Spring配置文件中开启注解驱动。
<mvc:annotation-driven/>
原文链接: https://blog.csdn.net/2401_82884096/article/details/138032830