`

Spring MVC HandlerExceptionResolver自定义处理异常

 
阅读更多

用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异常简单处理

    确保正确配置这些依赖,是构建一个能够正常处理异常的Spring MVC项目的基础。 在`src`目录下,可能包含了Java源代码、配置文件等。通常,异常处理相关的类会放在`com.example.yourpackage.controller.advice`这样的...

    spring mvc 事务配置+异常处理

    Spring MVC提供了多种方式来处理异常,包括传统的Java异常捕获机制、自定义异常处理器和使用`@ExceptionHandler`注解。 - **传统异常捕获**:通过在Controller方法内部使用try-catch语句来捕获和处理异常。 - **...

    spring mvc 参数绑定漏洞

    1. **类型转换异常处理**:通过自定义`HandlerExceptionResolver`或使用全局异常处理器(`@ControllerAdvice`),捕获并处理类型转换异常,避免向用户透露过多敏感信息。 2. **输入验证**:使用注解(如`@...

    springmvc 异常统一处理的三种方式详解.docx

    本篇文章将详细探讨Spring MVC处理异常的三种主要方法:SimpleMappingExceptionResolver、自定义HandlerExceptionResolver以及@ExceptionHandler注解。 1. SimpleMappingExceptionResolver Spring MVC提供了内置的...

    Spring MVC示例

    Spring MVC提供了统一的异常处理机制,可以使用`@ExceptionHandler`注解在Controller方法中处理特定异常,或者全局地配置`HandlerExceptionResolver`。 综上所述,这个"Spring MVC示例"项目是一个完整的Web应用...

    Spring.MVC学习指南.pdf

    - 全局异常处理可以通过实现HandlerExceptionResolver接口或使用@ControllerAdvice和`@ExceptionHandler`注解来实现。 7. **RESTful API设计**: - 利用HTTP动词(GET, POST, PUT, DELETE等)和URI资源路径来设计...

    Spring MVC 配套资料

    6. HandlerExceptionResolver:异常处理器,处理 Controller 执行过程中抛出的异常。 三、Spring MVC 工作流程 1. 用户发送 HTTP 请求到 DispatcherServlet。 2. DispatcherServlet 根据请求信息找到相应的 ...

    Spring MVC总结.doc

    Spring MVC提供了统一的异常处理机制,可以通过配置`HandlerExceptionResolver`来捕获和处理异常,增强了应用的健壮性。 9. **测试支持** Spring MVC为单元测试和集成测试提供了强大的支持,可以通过MockMVC API...

    spring mvc

    Spring MVC 提供了 `HandlerExceptionResolver` 接口,允许自定义异常处理器。开发者可以通过实现该接口来捕获并处理特定的运行时异常。默认情况下,Spring MVC 提供了一些内置的异常处理器,例如 `...

    spring-mvc-custom-exception:Spring MVC 中的异常处理

    spring-mvc-custom-exception 在 Spring MVC 中自定义现有的 ExceptionHandlerExceptionResolver 类以动态处理异常的示例如何运行示例 git clone ...mvc-custom-exceptionmvn spring-boot:run

    Spring MVC 中文资料

    9. **`HandlerExceptionResolver` 接口及其实现类**:如 `SimpleMappingExceptionResolver`,用于处理异常。 10. **`ModelAndView` 类**:用于封装模型数据和视图信息。 #### 三、核心流程分析 Spring MVC 的...

    Springmvc自定义异常处理器实现流程解析

    自定义异常处理器是指实现HandlerExceptionResolver接口的类,该类负责捕获和处理自定义异常。在本例中,我们定义了一个CustomHandleException类,该类实现了HandlerExceptionResolver接口,该类的resolveException...

    第三课:spring mvc 原理深度解析1

    HandlerInterceptor 是 Spring MVC 提供的拦截器机制,可以在请求处理前后执行自定义逻辑,例如权限检查、日志记录等。 为了验证上述流程,可以创建一个简单的 Spring MVC 示例,包括定义 Controller、配置 ...

    _第一课:spring mvc 原理深度解析1

    `HandlerInterceptor`作为拦截器,可以在请求处理前、后插入自定义逻辑,扩展了Spring MVC的功能。 理解这些组件的作用和交互,对于深入掌握Spring MVC的工作原理和优化应用性能至关重要。在实际开发中,这些知识点...

    Spring MVC启动时初始化的几个常用方法

    7. **定制异常处理器**:通过实现`HandlerExceptionResolver`接口,可以自定义异常处理逻辑,使系统对错误的处理更加优雅。 8. **静态资源处理**:`DispatcherServlet`默认会处理所有请求,包括静态资源请求。但...

    第二课:通过MVC原理,自定义MVC框架实现1

    当在DispatcherServlet中遇到异常时,它会调用`processHandlerException()`方法,遍历所有的`handlerExceptionResolvers`来处理异常。例如,我们可以创建一个自定义的异常处理器`SimpleExceptionHandle`,当发生异常...

    Spring mvc 实例

    Spring MVC 提供了 @ExceptionHandler 注解,允许开发者自定义全局或特定 Controller 的异常处理器,统一处理运行时异常。此外,还可以配置 HandlerExceptionResolver 来扩展异常处理逻辑。 **8. RESTful API 支持*...

    spring-mvc4.3.1 JAR包

    9. **HandlerExceptionResolver**:异常处理器允许自定义处理程序来捕获和处理控制器中抛出的异常,提供更友好的错误页面。 10. **Tiles和Freemarker集成**:Spring MVC可以方便地与第三方模板引擎集成,如Tiles和...

    Spring MVC异常处理机制示例详解

    Spring MVC异常处理机制示例详解 Spring MVC 异常处理机制是指在 Spring MVC 框架中,对异常的捕捉和处理...Spring MVC 异常处理机制提供了一种灵活的机制来处理异常,使得开发者可以根据需要选择合适的异常处理方式。

Global site tag (gtag.js) - Google Analytics