我目前有一种方法来保存用户。保存方法和结果
public PersonDto Save(PersonDto personDto)
但是,如果在保存,我发现有一个重复的用户名,或其他一些问题与数据 - 我来回应这个唯一的办法就是抛出异常。
throw new Exception("Username exists");
我已经读过,不应该将异常用于'业务需求违规'。
有没有更好的方法将结果返回给我的调用方法?我需要返回到PersonDto,但也有一些关于任何问题的信息。这样做有没有普遍的做法或模式?也许会返回一个'SaveResult'对象,其中包含一个Object SavedObject
(在本例中为我的PersonDto)以及其他一些属性,如string SaveResult
和bool Success
?
我建议您在代码中发生类似问题时记录到文件,而不是抛出异常。我的大部分程序都有日志文件。 –
指南(http://msdn.microsoft.com/zh-cn/library/ms229030.aspx)明确指出:DO通过抛出异常报告执行失败,并且不返回错误代码。如果Save方法无法保存,那就是执行失败。 –
是否返回与传入的相同的PersonDto实例?如果是这样,那有什么意义?来电者已经提到它,对吗? –