- 浏览: 4380754 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (163)
- 职场 && 心情 (22)
- Java/Basic (17)
- Java/Compression (7)
- Java/Security (20)
- Java/Maven (3)
- Java/Cache (11)
- Eclipse (4)
- Spring (19)
- ORM/Hibernate (2)
- ORM/iBatis (3)
- DB/NoSQL (11)
- DB/MySQL (7)
- DB/MS SQL Server (4)
- OS/Linux (11)
- OS/Mac (7)
- C/C++ (4)
- Server Architecture/Basic (13)
- Server Architecture/Distributed (17)
- Moblie/Andriod (2)
- WebService (3)
- Objective-C (1)
- Html (1)
- 设计模式 (1)
- Scala (0)
- Kafka (1)
最新评论
-
w47_csdn:
证书安装:在"浏览"选项中选择" ...
Java加密技术(九)——初探SSL -
w47_csdn:
spiritfrog 写道你好,我按照你的步骤,tomcat中 ...
Java加密技术(九)——初探SSL -
liuyachao111:
11楼说的对 用@ControllerAdvicepublic ...
Spring 注解学习手札(八)补遗——@ExceptionHandler -
irayslu:
作者你好, 我把你的源码放在jdk6, jdk7 中运行正常, ...
Java加密技术(五)——非对称加密算法的由来DH -
夏季浅忆-卖小子:
为什么不能解压rar格式的压缩包呢
Java压缩技术(三) ZIP解压缩——Java原生实现
Spring注解,改变了我的开发思路。前段时间,用@RequestBody,@ResponseBody,不费吹灰之力就解决了JSon自动绑定。接着就发现,如果遇到RuntimeException,需要给出一个默认返回JSON。
以前都是用SimpleMappingExceptionResolver拦截实现,今天偶尔看下资料,@ExceptionHandler,就把这个异常给拦截了,太方便了!
相关参考:
Spring 注解学习手札(一) 构建简单Web应用
Spring 注解学习手札(二) 控制层梳理
Spring 注解学习手札(三) 表单页面处理
Spring 注解学习手札(四) 持久层浅析
Spring 注解学习手札(五) 业务层事务处理
Spring 注解学习手札(六) 测试
Spring 注解学习手札(七) 补遗——@ResponseBody,@RequestBody,@PathVariable
Spring 注解学习手札(八) 补遗——@ExceptionHandler
直接上代码:
当这个Controller中任何一个方法发生异常,一定会被这个方法拦截到。然后,输出日志。封装Map并返回,页面上得到status为false。就这么简单。
或者这个有些有些复杂,来个简单易懂的,上代码:
相关参考:
Spring 注解学习手札(一) 构建简单Web应用
Spring 注解学习手札(二) 控制层梳理
Spring 注解学习手札(三) 表单页面处理
Spring 注解学习手札(四) 持久层浅析
Spring 注解学习手札(五) 业务层事务处理
Spring 注解学习手札(六) 测试
Spring 注解学习手札(七) 补遗——@ResponseBody,@RequestBody,@PathVariable
Spring 注解学习手札(八) 补遗——@ExceptionHandler
建议将
return new ResponseEntity<Object>(tResult,HttpStatus.OK);
改为
return new ResponseEntity<Object>(tResult,HttpStatus.INTERNAL_SERVER_ERROR);
正解!!!
完全可以将@ExceptionHandler写到父类中,然后子类controller继承。。。
那还不如写到xml里,全局处理
完全可以将@ExceptionHandler写到父类中,然后子类controller继承。。。
兄弟,再具体一点,给个代码参考下,我完善下
嗯,这是这种处理方式的限定
以前都是用SimpleMappingExceptionResolver拦截实现,今天偶尔看下资料,@ExceptionHandler,就把这个异常给拦截了,太方便了!
相关参考:
Spring 注解学习手札(一) 构建简单Web应用
Spring 注解学习手札(二) 控制层梳理
Spring 注解学习手札(三) 表单页面处理
Spring 注解学习手札(四) 持久层浅析
Spring 注解学习手札(五) 业务层事务处理
Spring 注解学习手札(六) 测试
Spring 注解学习手札(七) 补遗——@ResponseBody,@RequestBody,@PathVariable
Spring 注解学习手札(八) 补遗——@ExceptionHandler
直接上代码:
@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。就这么简单。
或者这个有些有些复杂,来个简单易懂的,上代码:
@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"; } }
相关参考:
Spring 注解学习手札(一) 构建简单Web应用
Spring 注解学习手札(二) 控制层梳理
Spring 注解学习手札(三) 表单页面处理
Spring 注解学习手札(四) 持久层浅析
Spring 注解学习手札(五) 业务层事务处理
Spring 注解学习手札(六) 测试
Spring 注解学习手札(七) 补遗——@ResponseBody,@RequestBody,@PathVariable
Spring 注解学习手札(八) 补遗——@ExceptionHandler
评论
16 楼
liuyachao111
2018-04-16
11楼说的对 用@ControllerAdvice
public class WebExceptionHandler {...
可以统一处理异常,对所有的Controller都起作用
public class WebExceptionHandler {...
可以统一处理异常,对所有的Controller都起作用
15 楼
tomecs
2017-10-11
学完了,感觉收获好多,
14 楼
di1984HIT
2017-06-25
学习了~~
13 楼
cruiser_31hehe
2017-03-13
chenyueling 写道
可以使用 @ControllerAdvice
不用任何的配置,只要把这个类放在项目中,Spring能扫描到的地方。就可以实现全局异常的回调。
@ControllerAdvice public class SpringExceptionHandler{ /** * 全局处理Exception * 错误的情况下返回500 * @param ex * @param req * @return */ @ExceptionHandler(value = {Exception.class}) public ResponseEntity<Object> handleOtherExceptions(final Exception ex, final WebRequest req) { TResult tResult = new TResult(); tResult.setStatus(CodeType.V_500); tResult.setErrorMessage(ex.getMessage()); return new ResponseEntity<Object>(tResult,HttpStatus.OK); } }
不用任何的配置,只要把这个类放在项目中,Spring能扫描到的地方。就可以实现全局异常的回调。
建议将
return new ResponseEntity<Object>(tResult,HttpStatus.OK);
改为
return new ResponseEntity<Object>(tResult,HttpStatus.INTERNAL_SERVER_ERROR);
12 楼
家哇尘续缘
2016-09-11
chenyueling 写道
可以使用 @ControllerAdvice
不用任何的配置,只要把这个类放在项目中,Spring能扫描到的地方。就可以实现全局异常的回调。
@ControllerAdvice public class SpringExceptionHandler{ /** * 全局处理Exception * 错误的情况下返回500 * @param ex * @param req * @return */ @ExceptionHandler(value = {Exception.class}) public ResponseEntity<Object> handleOtherExceptions(final Exception ex, final WebRequest req) { TResult tResult = new TResult(); tResult.setStatus(CodeType.V_500); tResult.setErrorMessage(ex.getMessage()); return new ResponseEntity<Object>(tResult,HttpStatus.OK); } }
不用任何的配置,只要把这个类放在项目中,Spring能扫描到的地方。就可以实现全局异常的回调。
正解!!!
11 楼
chenyueling
2016-03-09
可以使用 @ControllerAdvice
不用任何的配置,只要把这个类放在项目中,Spring能扫描到的地方。就可以实现全局异常的回调。
@ControllerAdvice public class SpringExceptionHandler{ /** * 全局处理Exception * 错误的情况下返回500 * @param ex * @param req * @return */ @ExceptionHandler(value = {Exception.class}) public ResponseEntity<Object> handleOtherExceptions(final Exception ex, final WebRequest req) { TResult tResult = new TResult(); tResult.setStatus(CodeType.V_500); tResult.setErrorMessage(ex.getMessage()); return new ResponseEntity<Object>(tResult,HttpStatus.OK); } }
不用任何的配置,只要把这个类放在项目中,Spring能扫描到的地方。就可以实现全局异常的回调。
10 楼
wangleihome
2016-01-13
不错
9 楼
高国藩
2015-07-09
设置一个全局的异常处理类就可以了啊,为什么还要这样写呢
8 楼
在世界的中心呼喚愛
2015-04-06
yangtong501703793 写道
daisiki 写道
也有不好的地方,每个Controller你都得写一遍...
完全可以将@ExceptionHandler写到父类中,然后子类controller继承。。。
那还不如写到xml里,全局处理
7 楼
yangtong501703793
2013-10-08
daisiki 写道
也有不好的地方,每个Controller你都得写一遍...
完全可以将@ExceptionHandler写到父类中,然后子类controller继承。。。
6 楼
snowolf
2013-01-17
saintsaya 写道
测试了一下第一种方式可行,第二种方式不可行,参数里放一个ModelMap会抛异常,Illegal那个参数异常,放在里面new出来是可以的,各位可以测试一下
兄弟,再具体一点,给个代码参考下,我完善下
5 楼
saintsaya
2013-01-17
测试了一下第一种方式可行,第二种方式不可行,参数里放一个ModelMap会抛异常,Illegal那个参数异常,放在里面new出来是可以的,各位可以测试一下
4 楼
iluoxuan
2012-12-25
继承啊 真实的
3 楼
snowolf
2012-09-20
daisiki 写道
进行异常处理的方法必须与出错的方法在同一个Controller里面
嗯,这是这种处理方式的限定
2 楼
daisiki
2012-09-20
进行异常处理的方法必须与出错的方法在同一个Controller里面
1 楼
daisiki
2012-09-20
也有不好的地方,每个Controller你都得写一遍...
发表评论
-
征服 Redis + Jedis + Spring (三)—— 列表操作
2013-03-06 16:16 83952一开始以为Spring下操 ... -
Memcached笔记——(四)应对高并发攻击
2012-09-13 09:48 28918近半个月过得很痛苦,主要是产品上线后,引来无数机器用户恶意 ... -
征服 Redis + Jedis + Spring (二)—— 哈希表操作(HMGET HMSET)
2012-08-29 18:29 82313不得不说,用哈希操作来存对象,有点自讨苦吃! 不过,既然 ... -
征服 Redis + Jedis + Spring (一)—— 配置&常规操作(GET SET DEL)
2012-08-29 16:30 157441有日子没写博客了,真的是忙得要疯掉。 完成项目基础架构搭建 ... -
Spring 注解学习手札(七) 补遗——@ResponseBody,@RequestBody,@PathVariable
2012-08-10 21:27 439615最近需要做些接口服务,服务协议定为JSON,为了整合在Spri ... -
征服 Kestrel + XMemcached + Spring TaskExecutor
2012-07-30 14:43 6196上一篇征服 Kestrel + XMemcached只是对Ke ... -
征服Spring AOP—— @AspectJ
2012-04-10 12:01 18648接N年前写的一篇Spring AOP相关的内容征服Spring ... -
Memcached笔记——(二)XMemcached&Spring集成
2012-04-01 09:55 42315今天研究Memcached的Java的Client,使用XMe ... -
Spring util
2011-02-24 12:02 01,<util:constant/> 取代了之前通 ... -
Spring HttpInvoke实现,以及效率提升!
2010-07-01 17:38 15015最近接手服务器总被人质疑效率问题,说到底是质疑Spring H ... -
Spring 注解学习手札(六) 测试
2010-02-05 16:28 53152既然系统基于注解自成一体,那么基于Spring的测试是否可以依 ... -
Spring 注解学习手札(五) 业务层事务处理
2010-02-04 16:11 25338控制器层、持久层都有 ... -
Spring 注解学习手札(四) 持久层浅析
2010-01-29 11:11 22571今天,我们玩玩数据库,搞搞持久层。不搞太复杂的东西,Sprin ... -
Spring 注解学习手札(三) 表单页面处理
2010-01-26 15:21 40473昨天小歇一天,看着两篇博客迅速飙升的点击率,十分欣慰。今天来研 ... -
Spring 注解学习手札(二) 控制层梳理
2010-01-24 15:53 36562昨天对Spring注解有了一 ... -
Spring 注解学习手札(一) 构建简单Web应用
2010-01-23 13:40 83369近来工作发生了一些变化,有必要学习一下Spring注解了! ... -
征服Spring AOP—— Schema
2008-09-03 17:41 6427自从开始使用Spring,就接触到AOP,但一直未能深入,沉淀 ... -
关于Spring中Commons Validator的使用说明
2008-09-01 09:57 8133关于Spring中Commons Validator的使用说明 ... -
acegi 我该从哪里取到用户的信息
2006-09-21 17:32 5774项目需要 用acegi做为安全屏障,按acegi 1.0.1 ...
相关推荐
NULL 博文链接:https://snowolf.iteye.com/blog/1628861
Spring 注解学习手札,个人学习Spring mvc的知识总结
NULL 博文链接:https://snowolf.iteye.com/blog/577989
NULL 博文链接:https://snowolf.iteye.com/blog/583161
NULL 博文链接:https://snowolf.iteye.com/blog/578452
NULL 博文链接:https://snowolf.iteye.com/blog/580194
NULL 博文链接:https://snowolf.iteye.com/blog/588351
NULL 博文链接:https://snowolf.iteye.com/blog/587602
分享Perl_学习手札书籍,供大家学习、参考及交流perl。
perl学习手札,共同学习,共同进步。希望你能很快掌握perl。
关于作者: 简信昌 “傲尔网”专案经理 博仲法律事务所资讯部门 台北Perl推广组 (Taipei.pm) 召集人 Newzilla召集人 目前专案: Open Source Foundry (OSSF) Newzilla 线上杂志 ...“Perl学习手札”
Perl学习手札.chmPerl学习手札.chmPerl学习手札.chm
Perl 学习手札,这本书介绍了perl的基本语法及perl的一些用法,想了解perl的就看一看
hibernate学习手札.z03
hibernate学习手札.z01
Perl 学习手札,好东西
1-高级perl编程(黑豹书).pdf 2-Perl_学习手札.pdf
非常著名的perl学习手札(初学者有福了),本文档是精美的PDF版,排版精美,是网络上到现在为止能找到的最好的。 全书共分17个小节,通过讲解实例来学习perl,你可以复制这些代码,然后执行。学习非常方便!
8086汇编学习手札及各章节检测题详细答案。 配套书籍 王爽的汇编
打造魅力组合——在iBook 上安装Linux手札.pdf