首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

从Spring和Hibernate的设计来理解合理的错误处理体系

2013-03-01 
从Spring和Hibernate的设计来理解合理的异常处理体系?Java代码??property?nametransactionAttributes

从Spring和Hibernate的设计来理解合理的异常处理体系
?Java代码??从Spring和Hibernate的设计来理解合理的错误处理体系

  1. <property?name="transactionAttributes">???
  2. ????<props>???
  3. ????????????<prop?key="insert*">PROPAGATION_REQUIRED,-?MyCheckedException,+MyUnCheckedException</prop>???
  4. ????????????<prop?key="update*">PROPAGATION_REQUIRED</prop>???
  5. ????????????<prop?key="*">PROPAGATION_REQUIRED,readOnly</prop>???
  6. ????????</props>???
  7. </property>???
-MyCheckedException 指定如果方法抛出MyCheckedException或它的子类,事务将 会自动回滚。?
+MyUnCheckedException 指定如果方法抛出MyUnCheckedException或它的子类,事务仍将会提交。?

可我们的项目中是怎么做的呢??

几乎在每一层的每一个方法中都try...catch一下,然后在catch代码块中抛出一个OAException,这个OAException是New出来的而且还是一个CheckedException,包含了一句简单的异常信息,如“数据访问出现错误……”。这样做的后果有两个,一是又回到了Hibernate2的那种异常处理方式,使代码变的复杂了,有时候只有一两行的代码就可以搞定的现在要写个十多行的异常处理代码。二是丢掉了原始的异常信息,这一点就更严重了,由于OAException是New出来的,所以只包含了简单的提示信息,而真正出现异常的原始信息却丢掉了。另外,从上面Spring事务的回滚机制来看,如果采用默认配置,事务都会变的形同虚设了。?

这种异常处理体系对程序员是一种痛苦,对程序设计来说是一种缺憾!?

热点排行