以做Web为例 假如采用多层结构(不止三层)  数据库连接用持久化框架(ibatis之类的)
其他的什么逻辑层啥的 也都有这种多层结构的项目 大家的异常机制是怎么处理的? 用什么样的异常处理比较好? 效率比较高?

解决方案 »

  1.   


    要明确区分业务执行的结果和系统异常。比如验证用户的合法性,如果对应的用户ID不存在,不应该抛出异常, 
    而是返回(或通过out参数)一个表示验证结果的枚举值,这属于业务执行的结果。但是,如果在从数据库中提取用户信息时,数据库连接突然断开,则应该抛出系统异常 
    BL层应根据业务的需要捕获某些系统异常,并将其转化为业务执行的结果 
    UI层除了从调用BL层的API获取的返回值来查看业务的执行结果外,还需要截获所有的系统异常,并将其解释为友好的错误信息呈现给用户 
    一般使用log4net实现日志记录和自定义异常处理 
    http://topic.csdn.net/u/20090531/10/75A5A96A-F012-491F-9E7D-A4E9C4C17FC4.html