有无数文章解释了我已经成功实现的使用 Spring 3 MVC 的基本异常处理。因此,现在当我的 Controller 之一抛出异常类时,它会被我的自定义异常处理程序正确捕获。
但是,我无法让它将错误类抛出到我的自定义异常处理程序,而这正是我所需要的。一些第三方库抛出错误,这只是绕过了我的 Spring 错误处理配置,这似乎仅适用于 Exception 及其子类。
有什么方法可以将其配置为在我的自定义异常处理程序中也包含错误类型吗?
以下代码演示了我如何设置:
<bean id="exceptionResolver" class="com.test.ExceptionHandler" p:order="2" >
<property name="defaultErrorView" value="error"/>
</bean>
最佳答案
我们使用的模式是拥有一个 BaseController
,我们的所有 Controller 都使用以下格式扩展它,以将特定错误映射到特定 HTTP 状态,并捕获异常中最通用的情况:
@Controller
public class BaseController {
@ExceptionHandler (Exception.class)
@ResponseStatus (HttpStatus.INTERNAL_SERVER_ERROR)
public ModelAndView handleAllExceptions(Exception ex) {
return new JsonError(ex.getMessage()).asModelAndView();
}
@ExceptionHandler (InvalidArticleQueryRangeException.class)
@ResponseStatus (HttpStatus.NOT_FOUND)
public ModelAndView handleAllExceptions(InvalidArticleQueryRangeException ex) {
return new JsonError(ex.getMessage()).asModelAndView();
}
}
关于java - 如何配置 Spring 3 MVC 来处理类似于异常的错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17195205/