【发布时间】:2010-05-29 10:11:50
【问题描述】:
需要实现全局错误处理,所以也许你可以用下面的例子来帮忙......
我有这个代码:
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包围函数调用 - 还有别的吗??
如果发生异常怎么办?
在这个例子中: 这是一个用户登录,所以即使一切都失败了,用户也应该得到一些有意义的信息 - 大致如下:登录正常(只是重定向),登录不正常(错误的用户名/密码),登录不可能由于内部问题,抱歉(发生异常)。
对于第一个函数,我担心数据库访问是否存在问题。 不知道第二个是否有什么需要处理的。
谢谢你的信息。你会怎么做? 需要这方面的具体信息(我更容易理解),还需要有关如何处理其他任务/功能的一般信息。
我浏览了互联网,但每个人都有不同的话要说,所以不确定该怎么做...将在这里获得最多票数,或者最合乎逻辑的答案:) 谢谢。
【问题讨论】:
标签: c# asp.net exception exception-handling