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

我这个项目比较老,用的 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 等这些用的,,,原来不是的。

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

转载于:https://my.oschina.net/ouminzy/blog/1531234

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值