SSH的事务异常处理是这样理解吗?

LoginOut 2009-11-26 03:12:33
声明式事务:
<tx:method name="add*" propagation="REQUIRED" />

serivcesImpl

public void addUserinfo() {
System.out.println("hei");
String hql = "insert into userinfo (userid,userpw) select '397','2' ";
userinfoDao.executeQuery(hql);
String hql2 = "insert into userinfo (userid,userpw) select '378','2' ";
userinfoDao.executeQuery(hql2);
}


事务配置在业务逻辑层,并且不需要try catch 捕获异常,而应该让
spring捕获这个异常,当有异常的时候,事务会自动回滚的,经测试
也确实如此

...全文
150 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
LoginOut 2009-11-26
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 xuan_rain 的回复:]
这样可以,但是好像你并没有真正理解面向切面的思想
[/Quote]

怎么说?
xuan_rain 2009-11-26
  • 打赏
  • 举报
回复
这样可以,但是好像你并没有真正理解面向切面的思想
LoginOut 2009-11-26
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 zl3450341 的回复:]
sunyujia他回的
[/Quote]
楼主和楼下别像楼上那么写,异常被吃掉了还靠什么回滚了
在有try catch机制的语言里面强烈不建议使用boolean来判断成败与否
另外这里还有异常处理的隐患,catch了后没什么也没干只是输出了下,没有异常链,真正的大程序里面会导致严重的问题
是与try catch机制相违背的。

这里有几点不了解
1.异常被吃掉了还靠什么回滚了
catch(Exception e){
throw new RuntimeException("这样的话,事务也可以回滚,也只有RuntimeException才可以回滚");
}

2.在有try catch机制的语言里面强烈不建议使用boolean来判断成败与否
3.另外这里还有异常处理的隐患,catch了后没什么也没干只是输出了下,没有异常链,
真正的大程序里面会导致严重的问题,是与try catch机制相违背的。


可以讲讲吗?



kokobox 2009-11-26
  • 打赏
  • 举报
回复
可以这样
zl3450341 2009-11-26
  • 打赏
  • 举报
回复
sunyujia他回的

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧