文档章节

@exceptionhandler 没有起作用,捕获不到异常

之渊
 之渊
发布于 2017/09/07 13:43
字数 357
阅读 108
收藏 0

我这个项目比较老,用的 spring 版本是 spring3的。。。 springMVC没有 做 异常的拦截,,,所以我就用了 @exceptionhandler 拦截一下 异常。。。 可是发现没有起作用。。。根本没有进入这个 方法里面。。。 怎么回事?? 随便百度一下,,,也没有发现什么解决办法,,,刚开始搞定我还以为是 spring3的不兼容bug...

可是如果 写一个全局的 异常拦截类是 可以有效果的: 例子: GlobalExceptionHandler implements HandlerExceptionResolver 。。。。

不巧看到了这个:

spring配置文件中加上mvc:annotation-driven/,告知Spring启用注解驱动 。 看一下是不是配置了spring框架全局异常处理 比如basectrl中的@ExceptionHandler(Exception.class) 或者xml中SimpleMappingExceptionResolver

参考地址: https://www.zhihu.com/question/50935226

尝试了一下,果然问题解决了。。。 我的解决办法是:


例子代码:
@ExceptionHandler(Exception.class)
	@ResponseBody
	public String handleAuthorityException(Exception ex, HttpServletRequest req, HttpServletResponse response) {
		System.out.println("00000000000000");
		ex.printStackTrace();
		return "bbb";
	}


然后在mvc的xml里面配置加上即可

<!-- 解决@ExceptionHandler的@ResponseBody中文乱码 ,,加上这个@ExceptionHandler 就起作用了。。就不需要 mvc:annotation-driven 配置也是可以的  -->
方式1:
<!-- <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerExceptionResolver">
	    <property name="messageConverters">
	        <list>
	            <bean class="org.springframework.http.converter.StringHttpMessageConverter">
	                <constructor-arg value="UTF-8"/>
	            </bean>
	        </list>
	    </property>
	</bean> -->

方式2:
	<mvc:annotation-driven />

两种方式,随便选一种即可。。。

看来是我理解错了 : annotation-driven 了,我以为是 给 @Controller ,@RequestMapping 等这些用的,,,原来不是的。

解决办法就是这样子了。。。

© 著作权归作者所有

共有 人打赏支持
之渊
粉丝 11
博文 508
码字总数 150392
作品 0
佛山
程序员
Spring全局异常处理器

为什么全局异常处理器对于同一个方法,通过正常的web访问流程能捕获到异常,但通过定时器去访问这个方法就捕获不到异常了,是定时器有什么特殊姿势,还是全局异常处理器的实现问题呢? 全局异...

千青
2017/10/17
96
3
ASP.NET Web API 2中的错误处理

前几天在webapi项目中遇到一个问题:Controller构造函数中抛出异常时全局过滤器捕获不到,于是网搜一把写下这篇博客作为总结。 HttpResponseException 通常在WebAPI的Controller中抛出的未处...

雪飞鸿
2017/10/21
0
0
Spring MVC 全局的异常处理

1、使用SimpleMappingExceptionResolver实现异常处理   在Spring的配置文件applicationContext.xml中增加以下内容: <bean class="org.springframework.web.servlet.handler.SimpleMapping......

chaun
2015/09/21
541
0
SpringBoot之自定义异常的两种方式-yellowcong

Springboot异常的处理,可以通过一下几种方法,1、使用@ControllerAdvice来进行统一异常处理,@ExceptionHandler(value = Exception.class)来指定捕获的异常 ;2、通过自定义BasicErrorContr...

yelllowcong
04/06
0
0
Disruptor技术调研之EventHandler

com.lmax.disruptor.EventHandler<T> Callback interface to be implemented for processing events as they become available in the RingBuffer 用于提供对RingBuffer中当事件可用时的接口......

nj-zhangmq
2016/05/01
20
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

流量劫持是如何产生的?

流量劫持,这种古老的攻击沉寂了一段时间后,最近又开始闹的沸沸扬扬。众多知名品牌的路由器相继爆出存在安全漏洞,引来国内媒体纷纷报道。只要用户没改默认密码,打开一个网页甚至帖子,路由...

谢思华
17分钟前
0
0
Hadoop Client无法使用maven下载源码

最近在学习hadoop,使用maven的时候想看一下源码的注释,结果IDEA一直提示无法下载 搞得我一度以为maven坏掉了。 但是通过搜索,发现在maven仓库里确实没有源码.... 而2.8.1以及之前的版本是...

Iceberg_XTY
19分钟前
0
0
为什么程序员千万不要重写代码?

你所做的事情,也许暂时看不到成果,但不要灰心或焦虑,你不是没有成长,而是在扎根。 图片来自网络 0 前言 程序员都有一颗工程师的心,所以当他们到一片新的场地想做的第一件事就是,将旧的...

Java小铺
20分钟前
0
0
VUE集成AdminLte

1. 安装需要到插件 npm i admin-lte -Snpm i jquery -Snpm i axios -Snpm i vue-router -S 2. 配置webpack.config.js 2.1 module.exports.module.rules修改字体loader: {test: /\.(p......

Pasenger
59分钟前
0
0
Spring Aop原理之切点表达式解析

在前面的文章(Spring AOP切点表达式详解)中,我们总结了Spring Aop切点表达式的用法,而在上文(Spring Aop原理之Advisor过滤)中我们讲到,切点表达式的解析主要是在PatternParser.parse...

爱宝贝丶
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部