- 加了try—catch 之后这个事务不会回滚,会执行转账的价钱部分,因为这个程序的异常被捕获了,程序还是正常的运行,只是异常之后的操作不会再执行了。
public void Transfer(){
// 一个少钱
// 第一步 开启事务
try{
// 第二步进行业务操作
userDao.addMoney();
int i=10/0;
// 一个加钱
userDao.ReduceMoney();
// 如果说没有发生异常,提交事务}
catch{
e.printStack();
}
}
- 这样进行事务回滚会成功,这个转账不会执行
public void Transfer(){
// 一个少钱
// 第一步 开启事务
// 第二步进行业务操作
userDao.addMoney();
int i=10/0;
// 一个加钱
userDao.ReduceMoney();
// 如果说没有发生异常,提交事务
}