事务中的异常处理

aaaabbbccd9876 2014-08-05 12:38:27
事务配置在service层中,service中方法s调用了dao层两个方法save和update,,

/*
* 假设事务已配置(service层中)
*
*/

/**
* 模拟service层的s方法
*/
public void s(){
//保存成功,则update
if(save()){
update();
}
}
/**
* 模拟dao层的save方法
* @return
*/
public boolean save(){
boolean flag = false;
try{
//hibernate的save方法
flag = true;
}catch(){
flag = false;
} finally{
return flag;
}
}
/**
* 模拟dao层的update方法
*/

假设save的时候sql语句写错了在dao层save会不会报异常,我测试的时候dao层的save不会报异常,直接运行try里面的代码和finally里面的代码,然后继续执行service中s方法,执行快结束时出了异常,我觉得是事务在service层,提交事务时菜发sql语句,所以出异常,现在问题是这个异常是什么异常,我在dao层的save方法捕获异常有没有作用,(好像没有作用,不确定),当事务申明在service层时,dao层是不是就可以不考虑异常情况了,还是要考虑?亦或是通过throws抛出可能发生的异常,最后请大神讲讲事务处理sql异常的机制,申明试事务肯定是要通过反射处理的,
我的想法:sql语句那行代码执行了,但是没有事务提交,不算真正的发sql语句,在dao层try-catch是没有作用的,需要向上抛出可能出现的异常,在service层也是向上抛出或是try-catch
...全文
268 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2014-08-05
  • 打赏
  • 举报
回复
放纵的青春 2014-08-05
  • 打赏
  • 举报
回复
在service处理异常 dao层可以考虑往上抛 不需要处理2遍啦 浪费性能

67,512

社区成员

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

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