关于bll业务返回状态码还是要抛出一个异常
最近非常困惑一个事情:
在bll中通常要进行数据验证,比如注册功能要验证 账号不能重复和手机号不能重复。如果这两个都没有重复才能将数据insert到db中。通常一个系统中还会有其他多处这样的业务需求。那么,遇到这种需求的时候是返回特定的编号来表示,还是通过抛出异常来表示。
比如:账号重复时候返回 -1 手机号重复返回 -2 ,正常通过,注册后返回 id值给消费者。
还是throw CustomException("账号重复") 这样来告诉消费者呢。
我同时在晚上翻阅了资料和技术群进行询问:有些人推荐使用异常的方式来告诉消费者,但是,我有在微软的官方文档和其他文档中查阅到:正常的业务流程不应使用异常来处理 。
这时我就迷惑了,难道是我的理解有误。
欢迎拍砖,欢迎各抒己见
附两个相关文档链接:
http://www.cnblogs.com/aehyok/p/3750122.html
https://msdn.microsoft.com/zh-cn/library/ms173163.aspx