dao层try{}catch{}会影响事务的完整性吗

跌倒了爬起来再哭 发布于 2016/09/17 15:56
阅读 670
收藏 0
使用spring自带的事务,在service层和dao层加了try{}catch{},结果一个事务中部分sql语句更新了。so,影响事务完整性是在serivice层添加try{}catch{}的原因还是dao层的原因?谢谢各位大神
加载中
0
sxgkwei
sxgkwei

看你怎么写的代码,并怎么处理的了,一般无脑try{}catch{},并且习惯性Exception,而不是具体哪个类型的Exception时,都会破坏事务(业务逻辑)原子性。

所以,在很多javaer都是混子的团队里(当然很多人也并不精研技术,而是只喜欢吃喝玩乐的混子),做不到要求所有人都谨慎细致的情况下,只能一刀切的要求所有人写的代码不允许使用try{}catch{}语法,这样就算程序出问题了,最少日志里面还有记录可排查。

之所以这么说,是因为看到很多混子写的代码了,从来都是try{}catch(Exception e){},然后就没然后了,catch 的花括号里面,一句代码也没。

0
业余编程人士
业余编程人士
我认为不可能影响事物完整性,如果代码没问题请检查一下数据库的约束和锁等
0
冷川
冷川

引用来自“程序员之霸”的评论

我认为不可能影响事物完整性,如果代码没问题请检查一下数据库的约束和锁等
赞同
跌倒了爬起来再哭
跌倒了爬起来再哭
(⊙o⊙)…灰常感谢,事务没问题了。就是数据库一直死锁,把头都搞大了。。
0
很成立
很成立
一般来说dao层的异常捕获后,在catch里面再次抛出就不会影响事务的完整性
0
大海
大海
如果catch块里什么都不写,那遇到异常以后还是会继续执行,最好还是主动抛出runtimeexception
0
跌倒了爬起来再哭
跌倒了爬起来再哭

引用来自“sxgkwei”的评论

看你怎么写的代码,并怎么处理的了,一般无脑try{}catch{},并且习惯性Exception,而不是具体哪个类型的Exception时,都会破坏事务(业务逻辑)原子性。

所以,在很多javaer都是混子的团队里(当然很多人也并不精研技术,而是只喜欢吃喝玩乐的混子),做不到要求所有人都谨慎细致的情况下,只能一刀切的要求所有人写的代码不允许使用try{}catch{}语法,这样就算程序出问题了,最少日志里面还有记录可排查。

之所以这么说,是因为看到很多混子写的代码了,从来都是try{}catch(Exception e){},然后就没然后了,catch 的花括号里面,一句代码也没。

同意!
0
梦追梦
public statuc void main(String[] args){
  System.out.println("说得对");
}



返回顶部
顶部