风人园

弱水三千,只取一瓢,便能解渴;佛法无边,奉行一法,便能得益。
随笔 - 99, 文章 - 181, 评论 - 56, 引用 - 0
数据加载中……

spring mvc @ExceptionHandler 异常处理

spring mvc 统一的异常处理,有两种方式。
一、exceptionResolver
二、ExceptionHandler

两者不能同时配置。如果配置了第一种,则第二种无效。就因为这个原因,找了一天的问题。

ExceptionHandler 通过注解的方式,进行配置,只需要在某个controller 中设置了这个注解,则这个controller中的所有异常都会通过这个方法进行处理。

比如rest controller,增加一个
    @ExceptionHandler
    
public String exp(HttpServletRequest request, Exception ex) {  
        
        Map map 
= new HashMap();
        
        logger.error(
"error," + UUID.randomUUID().toString(), ex);
        request.setAttribute(
"ex", ex);  
        
        String msg 
= ex.getMessage();
        
        map.put(
"success""0"); 
        map.put(
"msg", msg);
        
        String rtnjson 
= JSONUtil.objectToJson(map);
        
        request.setAttribute(
"json", rtnjson);
        
        
return "json";
    }
 

这样,这个controler中的异常,都会由这个异常处理方法,进行统一处理,生成异常json。避免在各个方法中通过try catch 的方法,进行异常处理。

posted on 2016-11-08 08:32 风人园 阅读(381) 评论(0)  编辑  收藏 所属分类: Spring


只有注册用户登录后才能发表评论。


网站导航: