您的位置:首页 > 编程语言 > Java开发

Spring 注解学习手札(八)补遗——@ExceptionHandler

2014-03-05 15:09 411 查看
Spring注解,改变了我的开发思路。前段时间,用@RequestBody,@ResponseBody,不费吹灰之力就解决了JSon自动绑定。接着就发现,如果遇到RuntimeException,需要给出一个默认返回JSON。 

以前都是用SimpleMappingExceptionResolver拦截实现,今天偶尔看下资料,@ExceptionHandler,就把这个异常给拦截了,太方便了! 

直接上代码: 

Java代码  



@Controller  

public class AccessController {  

  

    /** 

     * 异常页面控制 

     *  

     * @param runtimeException 

     * @return 

     */  

    @ExceptionHandler(RuntimeException.class)  

    public @ResponseBody  

    Map<String,Object> runtimeExceptionHandler(RuntimeException runtimeException) {  

        logger.error(runtimeException.getLocalizedMessage());  

  

        Map model = new TreeMap();  

        model.put("status", false);  

        return model;  

    }  

  

}  

当这个Controller中任何一个方法发生异常,一定会被这个方法拦截到。然后,输出日志。封装Map并返回,页面上得到status为false。就这么简单。

 

或者这个有些有些复杂,来个简单易懂的,上代码: 

Java代码  



@Controller  

public class AccessController {  

    /** 

     * 异常页面控制 

     *  

     * @param runtimeException 

     * @return 

     */  

    @ExceptionHandler(RuntimeException.class)  

    public String runtimeExceptionHandler(RuntimeException runtimeException,  

            ModelMap modelMap) {  

        logger.error(runtimeException.getLocalizedMessage());  

  

        modelMap.put("status", IntegralConstant.FAIL_STATUS);  

        return "exception";  

    }  

}  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐