Spring如何处理MVC中的异常

时间:2015-05-14 06:20:16

标签: spring spring-mvc

Spring MVC异常句柄

在我看来,Spring MVC应用程序中存在不同类型的异常。

例如,一旦发生错误,服务或dao层可能会抛出异常。或者如果找不到合适的处理程序来处理请求,spring本身可能会抛出异常。

现在我尝试使用ControllerAdvice来处理异常:

@ControllerAdvice
public class GlobalExceptionHandler {
    private static final Logger log = LoggerFactory.getLogger(GlobalExceptionHandler.class);

    @ExceptionHandler(Exception.class)
    public ModelAndView myError(Exception exception) {
        log.error(exception.getMessage());
        ModelAndView mav = new ModelAndView();
        mav.addObject("exception", exception);
        mav.setViewName("error");
        return mav;
    }
}

但是,一旦我访问了错误的页面,我将从tomcat获取404错误页面,而不是error中定义的ControllerAdvice视图。

那么Spring是如何处理异常的呢?

1 个答案:

答案 0 :(得分:0)

我认为您宁愿将错误页面放在Web.xml中,每当您访问错误页面时,它都会被重定向到此错误页面。此外,这也不那么麻烦且易于管理。

这是否回答了您的问题