java - 如何配置 Spring 3 MVC 来处理类似于异常的错误?

标签 java spring-mvc spring-3

有无数文章解释了我已经成功实现的使用 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/

相关文章:

javascript - Alfresco ECM 的自定义用户界面

java - 未找到 [SaajSoapMessage 的端点映射,SOAP WS 执行期间出现异常

java - 分享一个 Spring MVC 项目

java - Spring MVC 测试结果出现 415 错误

java - 停止监听一个端口

java - 在悬停在 JTree 中的节点上更改鼠标光标

java - Spring MVC REST 中的 ETag 处理

java - spring3 中有页面范围吗?

spring - 启用 HiddenHttpMethodFilter 后使用 Spring MVC 3.0.2 上传多个文件

jsp - 在 Spring 3 中将日历对象绑定(bind)到 3 个下拉框