首页 新闻 会员 周边 捐助

业务逻辑层 应该返回 errorMessage 还是 throw new Exception(err

0
悬赏园豆:50 [已解决问题] 解决于 2008-10-24 08:18

比如:

1)

BusLogic.BillService.Insert(BillInfo info,out string errorMessage)

2)

BusLogic.BillService.Insert(BillInfo info)

{

  if ( info == null )

    throw new Exception(errorMessage);

}

究竟我该采用那种设计呢?

老烟枪的主页 老烟枪 | 初学一级 | 园豆:15
提问于:2008-10-23 17:29
< >
分享
最佳答案
0

我觉得如何按OOP的思想来做的话,用throw new 逻辑名Exception比较合适一些.

kevin002 | 菜鸟二级 |园豆:500 | 2008-10-23 17:34
其他回答(4)
0

业务逻辑层:应该返回 errorMessage

当然如果是我的话,我会返回errorcode,然后有errorcode去对应resource中预先定义的错误信息,显示到页面上。

RicoRui | 园豆:3663 (老鸟四级) | 2008-10-23 17:40
0

我个人比较喜欢

throw new BusinessLogicalException(errorMessage);

或者DataAccessException

等等……

JimLiu | 园豆:300 (菜鸟二级) | 2008-10-23 17:41
0

如果不管什么错误都抛异常会有性能问题。返回错误信息又不太OO。建议先进性验证,确保若不是网络或服务器挂掉就不会出错。这样在BusLogic.BillService.Insert(BillInfo info)函数里就只会在服务器挂掉这种真正的“异常”情况下才抛异常。

1-2-3 | 园豆:200 (初学一级) | 2008-10-23 18:10
0

逻辑层只管扔异常,便于将来移植,但是调用逻辑层前还要确保一下“大多数情况下是正确的”

Gray Zhang | 园豆:17610 (专家六级) | 2008-10-23 22:54
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册