异常处理器配置
除了使用@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"的错误消息。