@ExceptionHandler
2016-07-19 10:17
162 查看
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";
}
}
以前都是用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";
}
}
相关文章推荐
- 网络编程基本概念
- LeetCode:Rectangle Area
- Mysql5.7.10安装随笔
- 单例模式
- windows php安装redis扩展
- spring mvc 创建 rest api
- Hbase安装kerberos及远程登录配置
- 07.19C
- 分析PHP的死锁问题
- python数据类型详解
- js 动态添加元素(div、li、img等)及设置属性的方法
- Use Vim
- MVC,MVP 和 MVVM
- 【Android基础知识】Apache HttpClient的基本使用
- Java并发编程 - 逐级深入 看线程的中断
- MySQL5.7.10 installation for Windows.doc
- Android概览屏幕基础之添加任务和删除任务
- Android Studio若干小问题
- Component 与 Directive定义的区别
- HTML5推箱子实现