事务回滚的错误NoTransactionException: No transaction aspect-managed TransactionStatus i

Lucas_ccy 2015-07-27 01:09:52
Exception in thread "main" org.springframework.transaction.[code=perl]NoTransactionException: No transaction aspect-managed TransactionStatus in scope
at org.springframework.transaction.interceptor.TransactionAspectSupport.currentTransactionStatus(TransactionAspectSupport.java:114)
at com.test.test.text(test.java:51)
at com.test.test.main(test.java:18)

学习ssh时的错误

try{
System.out.println("============保存user============");
dao.save(user);
System.out.println("============保存classify============");
dao2.save(classify);
}catch(Exception e){
System.out.println("=====22222222222222");
// e.printStackTrace();
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
//就是这一句了,加上之后,如果doDbStuff2()抛了异常,
System.out.println("--------------");
}


我把classify设置成会抛出错误的。然后抛出RuntimeException;
AOP代码:
@AfterThrowing(throwing="ex",pointcut="execution(* com.dao.*.*(..))")
public void doRecoveyAction(Throwable ex){
System.out.println("===========事务回滚============");
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
System.out.println("===========回滚成功============");
}

但是输出的时候是这样的:
============保存user============
before
============保存classify============
before
=====22222222222222
Exception in thread "main" org.springframework.transaction.NoTransactionException: No transaction aspect-managed TransactionStatus in scope
at org.springframework.transaction.interceptor.TransactionAspectSupport.currentTransactionStatus(TransactionAspectSupport.java:114)
at com.test.test.text(test.java:51)
at com.test.test.main(test.java:18)

抛出的RuntimeException没有调用到AOP
但是我用个抛出1/0的错误的时候却可以调用到AOP
求大神指导啊
...全文
5965 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
夜风_BLOG 2015-12-26
  • 打赏
  • 举报
回复

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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