SpringMVC的异常处理(二)

2023-05-14 11:31:55 浏览数 (1)

异常处理器配置

除了使用@ExceptionHandler注解外,我们还可以使用异常处理器配置来实现SpringMVC的异常处理。这种方式需要在Spring配置文件中定义异常处理器,并将其注册到SpringMVC的处理器映射器中。当应用程序发生异常时,处理器映射器将自动查找相应的异常处理器来处理异常。

以下是一个使用异常处理器配置处理运行时异常的示例:

代码语言:javascript复制
<bean id="handlerExceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
  <property name="exceptionMappings">
    <props>
      <prop key="java.lang.RuntimeException">error-page</prop>
    </props>
  </property>
  <property name="defaultErrorView" value="error-page"/>
</bean>

在这个例子中,我们定义了一个SimpleMappingExceptionResolver异常处理器,并将它注册到处理器映射器中。当应用程序发生RuntimeException类型的异常时,SimpleMappingExceptionResolver会自动将其映射到名为"error-page"的视图中。

自定义异常处理器

除了使用@ExceptionHandler注解和异常处理器配置外,我们还可以自定义异常处理器来实现SpringMVC的异常处理。这种方式需要实现HandlerExceptionResolver接口,并将其注册到处理器映射器中。当应用程序发生异常时,处理器映射器将自动查找相应的异常处理器来处理异常。

以下是一个使用自定义异常处理器处理运行时异常的示例:

代码语言:javascript复制
public class CustomExceptionHandler implements HandlerExceptionResolver {

  @Override
  public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {
    ModelAndView modelAndView = new ModelAndView();
    modelAndView.setViewName("error-page");
    modelAndView.addObject("errorMessage", "Internal Server Error");
    return modelAndView;
  }
}

在这个例子中,我们自定义了一个CustomExceptionHandler异常处理器,并实现了HandlerExceptionResolver接口。当应用程序发生RuntimeException类型的异常时,CustomExceptionHandler会自动将其映射到名为"error-page"的视图中,并添加一个名为"errorMessage"的错误消息。

0 人点赞