необходимо реализовать глобальную обработку ошибок, так что, возможно, вы можете помочь в следующем примере ...
У меня есть этот код:
public bool IsUserAuthorizedToSignIn(string userEMailAddress, string userPassword)
{
// get MD5 hash for use in the LINQ query
string passwordSaltedHash = this.PasswordSaltedHash(userEMailAddress, userPassword);
// check for email / password / validity
using (UserManagementDataContext context = new UserManagementDataContext())
{
var users = from u in context.Users
where u.UserEMailAdresses.Any(e => e.EMailAddress == userEMailAddress)
&& u.UserPasswords.Any(p => p.PasswordSaltedHash == passwordSaltedHash)
&& u.IsActive == true
select u;
// true if user found
return (users.Count() == 1) ? true : false;
}
}
, а также md5:
private string PasswordSaltedHash(string userEMailAddress, string userPassword)
{
MD5 hasher = MD5.Create();
byte[] data = hasher.ComputeHash(Encoding.Default.GetBytes(userPassword + userEMailAddress));
StringBuilder stringBuilder = new StringBuilder();
for (int i = 0; i < data.Length; i++)
{
stringBuilder.Append(data[i].ToString("x2"));
}
Trace.WriteLine(String.Empty);
Trace.WriteLine("hash: " + stringBuilder.ToString());
return stringBuilder.ToString();
}
Итак, как мне поступить с обработкой исключений из этих функций? первый из них вызывается со страницы Default.aspx. вторая вызывается только из других функций из библиотеки классов.
Какая лучшая практика?
- код окружения ВНУТРИ каждой функции с помощью
try-catch
- окружить ФУНКЦИОНАЛЬНЫЙ ЗВОНОК
try-catch
- что-то еще ??
что делать, если случаются исключения?
в этом примере:
это вход пользователя в систему, поэтому каким-то образом, даже если все не удается, пользователь должен получить некоторую значимую информацию в виде строк: войти в систему в порядке (просто перенаправить), войти не в порядке (неправильное имя пользователя / пароль), войти не возможно из-за внутренних проблем, извините (исключение произошло).
для первой функции я беспокоюсь, если есть проблема с доступом к базе данных.
не уверен, есть ли что-то, что нужно обработать во втором.
Спасибо за информацию. как бы ты это сделал?
нужна конкретная информация по этому вопросу (для меня легче понять), а также общая информация о том, как выполнять другие задачи / функции.
Я посмотрел в Интернете, но у всех есть разные вещи, чтобы сказать, поэтому неуверенный, что делать ... пойдет или с большинством голосов здесь, или с наиболее логичным объясненным ответом :) спасибо.