文档章节

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

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

码上生花,ECharts 作品展示赛正式启动!>>>

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

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

© 著作权归作者所有

之渊
粉丝 14
博文 729
码字总数 255860
作品 0
佛山
程序员
私信 提问
加载中
请先登录后再评论。
sprintboot-learn(三)

全局异常处理 太简单,没有保存示例工程 方式1: 启动,测试结果: Value表示捕捉那些异常,是一个异常组,如果有多个异常,可以用{}括起来。建议都用exception,然后用instenceof判断,或者...

lazy~
2018/10/12
18
0
SpringMVC中的统一异常处理-自定义异常

https://www.cnblogs.com/shanheyongmu/p/5872442.html 我们知道,系统中异常包括:编译时异常和运行时异常RuntimeException,前者通过捕获异常从而获取异常信息,后者主要通过规范代码开发、...

wangwei2134
2018/08/20
317
0
Spring全局异常处理器

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

千青
2017/10/17
198
3
在SpringBoot中配置全局捕获异常

前言 之前写过一篇博客是使用spring利用HandlerExceptionResolver实现全局异常捕获 里面使用spring的HandlerExceptionResolver接口来实现全局的异常捕获,当时使用,但其实之后已经替换 当前...

osc_6lj6izs9
2018/03/06
1
0
ASP.NET Web API 2中的错误处理

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

雪飞鸿
2017/10/21
0
0

没有更多内容

加载失败,请刷新页面

加载更多

【开发环境】 irun(ncverilog)无法dump fsdb波形问题解决方法

【开发环境】 irun(ncverilog)无法dump fsdb波形问题解决方法 参考文章: (1)【开发环境】 irun(ncverilog)无法dump fsdb波形问题解决方法 (2)http://www.cnblogs.com/digital-wei/p/60...

osc_4b2ephd0
11分钟前
11
0
android edittext 点击回车会响应两次的解决方案

android edittext 点击回车会响应两次的解决方案 参考文章: (1)android edittext 点击回车会响应两次的解决方案 (2)http://www.cnblogs.com/exmyth/p/4469458.html 备忘一下。...

osc_x03qsedc
12分钟前
15
0
微信H5支付 遇到坑的一些解决方法

微信H5支付 遇到坑的一些解决方法 参考文章: (1)微信H5支付 遇到坑的一些解决方法 (2)http://www.cnblogs.com/foreversun/p/9068050.html 备忘一下。...

osc_81ub7i61
13分钟前
7
0
Nginx配置TCP服务负载均衡

# Nginx配置TCP服务负载均衡 ## 前置条件 - nginx 1.18 (1.9之后支持tcp负载) - 两个前置服务 ## 配置文件修改 Legacy Stable ``` # cat nginx.conf user nginx; # 增加工作线程 worker_pro...

osc_cd2qhmfp
14分钟前
15
0
java格式话时间报错java cannot format given object as a date

代码 String MonthYear = null; SimpleDateFormat simpleDateFormat = new SimpleDateFormat("mm/yyyy"); String dateformat = "2012-11-17T00:00:00.000-05:00"MonthYear = simple......

osc_e45irv7l
15分钟前
14
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部