Spring @ControllerAdvice异常处理程序返回404错误而不是视图

时间:2015-02-03 12:43:31

标签: java spring spring-mvc

我正在尝试创建一个控制器,它可以使用spring控制器建议注释来处理所有异常。

以下是我为此创建的课程。

@EnableWebMvc
@ControllerAdvice
public class GlobalDefaultExceptionHandler {


private static final Logger LOGGER = Logger.getLogger(GlobalDefaultExceptionHandler.class);

@ExceptionHandler(value = Exception.class)
public ModelAndView defaultErrorHandler(HttpServletRequest req, Exception e) throws Exception {
    LOGGER.debug("Handling Exception!");
    return new ModelAndView(new CustomError("<Error Message>"));
}
}

当抛出任何未处理的异常时,正在调用方法defaultErrorHandler,但它似乎向浏览器返回404错误,而不是返回视图CustomError。任何人都知道为什么会这样?

CustomError类位于

之下
public class CustomError {

private String errorMessage;

public CustomError(String errorMessage) {
    this.errorMessage = errorMessage;
}

public String getErrorMessage() {
    return errorMessage;
}

public void setErrorMessage(String errorMessage) {
    this.errorMessage = errorMessage;
}

}

感谢。

2 个答案:

答案 0 :(得分:1)

您似乎使用了错误的ModelAndView,您使用过的类似乎是org.springframework.web.portlet.ModelAndView,它有constatoror ModelAndView(java.lang.Object)

您应该使用的类org.springframework.web.servlet.ModelAndView没有接受Object的构造函数。

相应地更改导入和代码,你应该没问题

答案 1 :(得分:0)

我认为,有运行时异常,无法处理  @ExceptionHandler(value = Exception.class)

请发布您的控制器方法。