论坛首页 Java企业应用论坛

异常处理的疑惑

浏览 4285 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2004-02-04  
现在有个小项目尝试使用struts (1.1)+ hibernate 的来做,但是在项目中我碰到了这样的问题:如何有效的处理异常。

   目前异常是这样处理的:struts中的action来调用hibernate的数据库操作类(我们命名为service), service中没有catch hibernate抛出的异常,直接throws掉,目前没有对hibernate抛出的异常没有做任何异常类,一般抛出HibernateException(我想这肯定是不行的), 然后由action来处理抛出的异常,主要是觉得struts1.1对异常处理非常方便,只要在struts配置文件中作一些配置就可以完成。

   但是现在的问题上面这样的处理方法不能有效的将系统发生的异常记录,同时很多异常发生应该给前台操作用户的准确错误信息不能够提供(因为好像都是HibernateExceptio)。大家能够谈谈在实际项目中的经验。

  sun网站上有一篇关于异常处理的文章,它提出了三个观点:
  1、Be Specific     2、Throw Early   3、Catch Late
   http://today.java.net/pub/a/today/2003/12/04/exceptions.html

按照他提出来的观点,采用struts+hibernate来开发应用,应该怎么做呢?请高手指点。
   发表时间:2004-02-05  
我觉得在持久层抛出的异常继续向上抛出,在业务层进行扑获,然后这时候就应该抛出业务级的异常,传给UI层,这些信息应该是不带系统级异常信息的,而是对于客户可理解的,并且不需要纪录异常的完整堆栈信息
0 请登录后投票
   发表时间:2004-02-08  
http://forum.hibernate.org.cn/viewtopic.php?t=2038&highlight=
0 请登录后投票
   发表时间:2004-02-10  
我个人的偏好:对于底层,尽量抛出checked exception,这样有利于应用层标记不同的异常原因。对于应用层,记录之后进行处理,应用层之中尽量使用unchecked exception,这样可以防止一下子要处理5,6个Exception,造成混乱和代码的难以理解。反正应用层对于底层出现的Exception一般也无能为力。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics