Проблема обоих этих методов заключается в том, что вы не знаете, почему не удалось получить пользователя.
Например, если ваши методы Get
или TryGet
выглядят так ...
public bool TryGet(int userId, out User user) {
try {
var conn = CreateDbConnection();
var myUser = GetUser(userId, conn);
user = myUser;
return true;
}
catch {
return false;
}
}
... тогда у вас нет возможности узнать, что не удалось при получении пользователя.Может быть, не удалось создать соединение с БД, возможно, пользователь с указанным идентификатором не существует и т. Д.
Лучший способ может быть следующим:
public MyUser GetUser(int userId) {
MyDbConnection conn;
try {
conn = CreateDbConnection();
}
catch (Exception ex) {
throw new Exception("The DB connection could not be created.", ex);
}
MyUser myUser = GetUser(userId, conn);
if (myUser == null)
throw new Exception("No user exists with the ID '" + userId + "'.");
return myUser;
}
Таким образом, вы знаете, что не работаети у вас есть лучшее сообщение, чтобы войти дальше по цепочке.