需要实现全局错误处理,也许您可以帮忙看一下以下示例...
我有这段代码:
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。 - 其他方法?
如果出现异常怎么办?
在本例中: 这是用户登录,因此即使发生任何故障,用户也应该获得一些有意义的信息 - 比如:登录成功(重定向),登录失败(用户名/密码错误),由于内部问题无法登录,抱歉(发生异常)。
对于第一个函数,我担心数据库访问存在问题。 不确定是否需要处理第二个函数中的任何内容。
谢谢您的信息。您会如何处理? 需要具体的信息(易于理解),但还需要关于如何处理其他任务/函数的一般信息。
我在互联网上查找了一些信息,但每个人都有不同的说法,所以不确定该怎么办...将根据此处的最多投票或最合理解释的答案进行决策 :) 谢谢。