`

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 freemarker 自定义标签

    spring mvc freemarker 自定义标签demo spring mvc 通过自定义的标签在jsp页面调用,初学,记录下做个备忘

    spring mvc统一处理异常

    spring mvc统一处理异常,通过@ControllerAdvice+@ExceptionHandler

    精通Spring MVC 4

    本书共计10章,分别介绍了快速搭建Spring Web应用、精通MVC结构、URL映射、文件上传与错误处理、创建Restful应用、保护应用、单元测试与验收测试、优化请求、将Web应用部署到云等内容,循序渐进地讲解了Spring MVC4...

    Spring Cloud Gateway的全局异常处理

    Spring Cloud Gateway中的全局异常处理不能直接用@ControllerAdvice来处理,通过跟踪异常信息的抛出,找到对应的源码,自定义一些处理逻辑来符合业务的需求。 网关都是给接口做代理转发的,后端对应的都是REST API,...

    spring mvc 中 实现自定义注解 拦截需要的方法

    网上很多人想使用注解拦截spring mvc action中的一个方法,实现方法很多,一般是通过在拦截器中分析url路径来实现, 使用自定义注解的方式来标注要拦截的 action 中的某个方法, 没有很好的解决方法, 如果通过借助spring...

    spring mvc异常处理

    spring mvc异常处理,详细参考http://blog.csdn.net/xiejx618/article/details/41918611

    spring mvc 和spring security自定义登录

    使用spring mvc 和spring security 完成简单的自定义登录

    Spring MVC入门教程

    十一、spring mvc 如何实现全局的异常处理? 十二、spring mvc 如何把全局异常记录到日志中? 十三、如何给spring3 MVC中的Action做JUnit单元测试? 十四、spring mvc 转发与重定向 十五、spring mvc 处理ajax请求 ...

    Spring MVC 教程 快速入门 深入分析

    十一、spring mvc 如何实现全局的异常处理? 十二、spring mvc 如何把全局异常记录到日志中? 十三、如何给spring3 MVC中的Action做JUnit单元测试? 十四、spring mvc 转发与重定向 十五、spring mvc 处理ajax请求 ...

    Spring MVC--13.自定义拦截器

    Spring MVC--自定义拦截器Spring MVC--13.自定义拦截器Spring MVC--13.自定义拦截器Spring MVC--13.自定义拦截器Spring MVC--13.自定义拦截器Spring MVC--13.自定义拦截器Spring MVC--13.自定义拦截器

    spring mvc 官方文档

    本文详细介绍spring MVC的原理和开发心得体会。

    Spring MVC+MyBatis开发从入门到项目实战

    第3篇是Spring MVC技术入门,包括Spring MVC的背景介绍、架构整体剖析、环境搭建、处理器与映射器的讲解、前端控制器的源码分析、多种视图解析器的介绍、请求映射与参数绑定的介绍、Validation校验与异常处理和拦截...

    SpringMVC框架架构介绍

    十一、spring mvc 如何实现全局的异常处理? 十二、spring mvc 如何把全局异常记录到日志中? 十三、如何给spring3 MVC中的Action做JUnit单元测试? 十四、spring mvc 转发与重定向 十五、spring mvc 处理ajax请求...

    Spring Cloud zuul自定义统一异常处理实现方法

    主要介绍了Spring Cloud zuul自定义统一异常处理实现,需要的朋友可以参考下

    精通Spring MVC 4 中文

    精通Spring MVC 4 中文

    Spring+Spring mvc+Hibernate+Bootstrap、企业级员工信息管理系统

    01. 采用后台及前台的 Spring + ... 通过自定义处理器 ExceptionIntercept 实现 Spring mvc的全局异常捕获 10. 系统中包含了企业中采用的开发工具类的集合 11. AbstractDao 父类实现了Dao中针对单个对象的常用操作

    Spring MVC 基于注解实例

    Spring MVC 基于注解实例Spring MVC 基于注解实例Spring MVC 基于注解实例Spring MVC 基于注解实例Spring MVC 基于注解实例Spring MVC 基于注解实例Spring MVC 基于注解实例Spring MVC 基于注解实例Spring MVC 基于...

    spring mvc异常简单处理

    spring mvc让servlet容器直接处理异常.详细看:http://blog.csdn.net/xiejx618/article/details/41695255

Global site tag (gtag.js) - Google Analytics