给出以下代码:
public static bool UpdateUser(string userId,
string jobTitle)
{
return GetProvider().UpdateUser
(userId, jobTitle);
}
需要更改并且可能不会返回bool,例如:
UserProfile userProfile = new UserProfile();
userProfile.Initialize(user.UserName, true);
userProfile.ProfileJobTitle = jobTitle;
userProfile.Save();
你确定它确实会返回bool或者只是完全改变方法吗?
解决此类问题的正确方法是什么?
答案 0 :(得分:0)
我相信这取决于你和你想要做什么,如果你只是不介意返回值(bool)你可以忽略它,但如果你介意它,让我们说如果它返回false你可以显示消息(即“保存不成功”或其他)。
答案 1 :(得分:0)
大概是你问题中的第二个代码块是GetProvider::UpdateUser()
的实现。
确保它确实返回bool的明显替代方法是让它在失败时抛出异常。根据您拥有/不返回值的现有代码量,这可能会节省大量工作。特别是,任何当前没有值返回的东西都可以保持不变。任何返回“成功”的东西都可以删除返回值。返回失败的东西需要修改才能抛出异常。
如果你这样做,困难的部分将是确保所有其他代码都是异常安全的。根据您对异常的其他使用(如果有的话),您几乎肯定会这样做,但这可能会导致问题,因此您需要尽快清除其他代码中的问题。