用spring的接口HandlerExceptionResolver,可以处理一些自定义个化的异常;实现步骤也比较简单:
(1)实现HandlerExceptionResolver接口,如:
public class BBS7ExceptionHandler implements HandlerExceptionResolver { private static final Logger logger = LoggerFactory.getLogger(BBS7ExceptionHandler.class); @Override public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) { //做一些自定义方法,比如记log等 if (ex instanceof BBS7Exception) { // do something.. } Map<String, Object> model = new HashMap<String, Object>(); model.put("appName", appName); return new ModelAndView("/error/jsonError", model); } } }
(2)在spirng中,注入异常处理的bean,如:
<bean id="exceptionHandler" class="cn.pconline.bbs7.exceptions.BBS7ExceptionHandler" />
(3)使用的时候,在方法中抛出相应异常 :(主要是Controller层)
@RequestMapping(value = "/reply", params = {"action=reply", "tid"}) public String toPost(long tid, Model model, HttpServletRequest request, HttpServletResponse response) throws UnsupportedEncodingException { //判断是否登录、账号被锁、邮箱验证 JsonResult jsonResult = actionValidate.validate(request, response, new Action[]{Action.LOGIN, Action.LOCK_USER, Action.EXAM_EMAIL, Action.SECRET_FORUM}); if (!jsonResult.isSuccess()) { throw new BBS7Exception(jsonResult.getDesc()); } }
这样,在第3步抛出异常的时候,spring会自动检测到异常,就会用第1步resolveException方法处理,跳到相应的页面了。
相关推荐
确保正确配置这些依赖,是构建一个能够正常处理异常的Spring MVC项目的基础。 在`src`目录下,可能包含了Java源代码、配置文件等。通常,异常处理相关的类会放在`com.example.yourpackage.controller.advice`这样的...
Spring MVC提供了多种方式来处理异常,包括传统的Java异常捕获机制、自定义异常处理器和使用`@ExceptionHandler`注解。 - **传统异常捕获**:通过在Controller方法内部使用try-catch语句来捕获和处理异常。 - **...
1. **类型转换异常处理**:通过自定义`HandlerExceptionResolver`或使用全局异常处理器(`@ControllerAdvice`),捕获并处理类型转换异常,避免向用户透露过多敏感信息。 2. **输入验证**:使用注解(如`@...
本篇文章将详细探讨Spring MVC处理异常的三种主要方法:SimpleMappingExceptionResolver、自定义HandlerExceptionResolver以及@ExceptionHandler注解。 1. SimpleMappingExceptionResolver Spring MVC提供了内置的...
Spring MVC提供了统一的异常处理机制,可以使用`@ExceptionHandler`注解在Controller方法中处理特定异常,或者全局地配置`HandlerExceptionResolver`。 综上所述,这个"Spring MVC示例"项目是一个完整的Web应用...
- 全局异常处理可以通过实现HandlerExceptionResolver接口或使用@ControllerAdvice和`@ExceptionHandler`注解来实现。 7. **RESTful API设计**: - 利用HTTP动词(GET, POST, PUT, DELETE等)和URI资源路径来设计...
6. HandlerExceptionResolver:异常处理器,处理 Controller 执行过程中抛出的异常。 三、Spring MVC 工作流程 1. 用户发送 HTTP 请求到 DispatcherServlet。 2. DispatcherServlet 根据请求信息找到相应的 ...
Spring MVC提供了统一的异常处理机制,可以通过配置`HandlerExceptionResolver`来捕获和处理异常,增强了应用的健壮性。 9. **测试支持** Spring MVC为单元测试和集成测试提供了强大的支持,可以通过MockMVC API...
Spring MVC 提供了 `HandlerExceptionResolver` 接口,允许自定义异常处理器。开发者可以通过实现该接口来捕获并处理特定的运行时异常。默认情况下,Spring MVC 提供了一些内置的异常处理器,例如 `...
spring-mvc-custom-exception 在 Spring MVC 中自定义现有的 ExceptionHandlerExceptionResolver 类以动态处理异常的示例如何运行示例 git clone ...mvc-custom-exceptionmvn spring-boot:run
9. **`HandlerExceptionResolver` 接口及其实现类**:如 `SimpleMappingExceptionResolver`,用于处理异常。 10. **`ModelAndView` 类**:用于封装模型数据和视图信息。 #### 三、核心流程分析 Spring MVC 的...
自定义异常处理器是指实现HandlerExceptionResolver接口的类,该类负责捕获和处理自定义异常。在本例中,我们定义了一个CustomHandleException类,该类实现了HandlerExceptionResolver接口,该类的resolveException...
HandlerInterceptor 是 Spring MVC 提供的拦截器机制,可以在请求处理前后执行自定义逻辑,例如权限检查、日志记录等。 为了验证上述流程,可以创建一个简单的 Spring MVC 示例,包括定义 Controller、配置 ...
`HandlerInterceptor`作为拦截器,可以在请求处理前、后插入自定义逻辑,扩展了Spring MVC的功能。 理解这些组件的作用和交互,对于深入掌握Spring MVC的工作原理和优化应用性能至关重要。在实际开发中,这些知识点...
7. **定制异常处理器**:通过实现`HandlerExceptionResolver`接口,可以自定义异常处理逻辑,使系统对错误的处理更加优雅。 8. **静态资源处理**:`DispatcherServlet`默认会处理所有请求,包括静态资源请求。但...
当在DispatcherServlet中遇到异常时,它会调用`processHandlerException()`方法,遍历所有的`handlerExceptionResolvers`来处理异常。例如,我们可以创建一个自定义的异常处理器`SimpleExceptionHandle`,当发生异常...
Spring MVC 提供了 @ExceptionHandler 注解,允许开发者自定义全局或特定 Controller 的异常处理器,统一处理运行时异常。此外,还可以配置 HandlerExceptionResolver 来扩展异常处理逻辑。 **8. RESTful API 支持*...
9. **HandlerExceptionResolver**:异常处理器允许自定义处理程序来捕获和处理控制器中抛出的异常,提供更友好的错误页面。 10. **Tiles和Freemarker集成**:Spring MVC可以方便地与第三方模板引擎集成,如Tiles和...
Spring MVC异常处理机制示例详解 Spring MVC 异常处理机制是指在 Spring MVC 框架中,对异常的捕捉和处理...Spring MVC 异常处理机制提供了一种灵活的机制来处理异常,使得开发者可以根据需要选择合适的异常处理方式。