我正在与一位同事讨论何时在 WCF 服务中抛出错误以及何时不抛出错误。
一种观点是,我们只在服务操作由于某些错误而无法完成工作时才抛出错误;并且某些东西可能因此而处于无效状态。所以,一些例子:
ValidateMember(string name, string password, string country) -> 如果没有传递强制参数会抛出错误,因为验证本身无法执行;-> 如果发生某些内部错误,例如数据库已关闭,将抛出错误 -> 在所有其他情况下将返回状态协定,指定验证结果(MemberValidated、WrongPassword、MemberNotKnown,...)
GetMember(int memberId) -> 只会在出现故障时抛出错误,在所有其他情况下,如果未找到,它将返回成员或 null
另一种意见是当 GetMember 没有找到成员时,我们也应该抛出错误,或者在 ValidateMember 的情况下密码错误。
你怎么看?