本帖最后由 java2000_net 于 2008-08-05 11:16:39 编辑

解决方案 »

  1.   

    感觉真正做事的时候基本全是throw出去了.一个好的项目不可能会让程序员把很多精力花在处理异常上面的.框架的作用就是在最上层处理吧.觉得没有必要花太多时间在处理上面.
    估计架构师不这么想.
      

  2.   

    一般框架中大部分是让异常父类处理,也可以写些自定义异常来处理。java中引用了异常机制,异常并不是错误,你可以直接处理,也可以暂时不处理,让异常父类处理。
      

  3.   

    用的较多是第二种异常处理方式,
    代码显得简洁一些,通过Struts中配置异常处理信息,
    然后指定一个key跟国际化结合。无论是什么异常,都可以
    抛出一个SystemException,只要指定相关的参数就可以了,
    用起来挺方便的。也不用在Action中写try和catch了。还是统一异常处理好。
      

  4.   

    无可置疑 相比之下 第一种肯定要好hibernate在DAO层的捕获并log且再次抛出。第一这个你是管理员必须知道的异常信息,第二继续抛出的异常为后者的业务逻辑异常处理埋下伏笔在业务逻辑处理时再捕获这个DAO异常,并抛出自定义异常,比如“修改用户名时出现错误”,这样的信息就是用户可以理解的。如果在你的程序没写严谨的情况下,用户可能就知道也许我的信息输入了某些非法字符或者长度过长。而你作为程序员也许更想看到的是在DAO层出现的异常信息堆栈。