有一个奇妙的异常catch不到

Pasacal 发布于 2016/09/18 15:57
阅读 778
收藏 0

要读取一个properties文件里的参数,但是这个文件不存在,所以抛出了这个异常,奇怪的是,这个异常catch不住,图2里要打印的字符串没有打印,Spring也不会因为这个异常而回滚

加载中
1
whaon
whaon

因为你是IOException才回滚,而你catch后抛出了RuntimeException,所以不会回滚

但是打印的应该有才对啊

0
0_0Boom
0_0Boom
试试catch一下RuntimeException或者Throwable
Pasacal
Pasacal
没用,依然catch不到
0
超级奶爸老谭
超级奶爸老谭

先确定是不是这里抛出的,然后再看看子方法里面有没有做异常处理。

Pasacal
Pasacal
getValue里面是直接抛的,没做处理
0
ksfzhaohui
ksfzhaohui
要么其他地方捕获了,要么不在这里抛出的
Pasacal
Pasacal
往下就只有一层,getValue方法,没有捕获,直接抛的
0
notreami
notreami

你这是抛了三次异常啊,三次, 文件不存在异常抛出,Runtime异常抛出,最后因为事务注解,抛出了IO异常~~~

0
c
catlover
第一个异常的抛出点应该是第22行那个getValue方法吧,我感觉是读取配置文件时报错了,跟你的test函数无关。
c
catlover
回复 @Pasacal : 如果是在getValue里直接抛的,还是在getValue里进行捕获比较好,或者getValue不进行异常的抛出
Pasacal
Pasacal
是的,理应是22行抛出的异常,但是catch不到
0
开源中国刘德华
ITFrank
ITFrank
是的。要catch 这个
0
han_feng
han_feng
System.out.println()在e.printStackTrace()之后,你确定仔细检查过System.out的输出?
0
MZHS
MZHS

像这种问题最简单了,你在IOException构造函数打个断点就OK了,看看是谁new的异常,从根上抓异常!!!

0
青萍之末
青萍之末

里面catch掉了吧?

看看str返回的是啥

返回顶部
顶部