【发布时间】:2010-05-11 06:50:56
【问题描述】:
昨天我发布了一个关于异常处理技术的问题,但我没有得到准确的答案,部分原因是我的问题一定不准确。 所以我会更准确地问它。
我的 BLL 中有一种方法用于验证用户。如果用户通过身份验证,它会返回我存储在会话对象中的 User 类的实例以供进一步参考。 该方法看起来像这样......
public static UsersEnt LoadUserInfo(string email)
{
SqlDataReader reader = null;
UsersEnt user = null;
using (ConnectionManager cm = new ConnectionManager())
{
SqlParameter[] parameters = new SqlParameter[1];
parameters[0] = new SqlParameter("@Email", email);
try
{
reader = SQLHelper.ExecuteReader(cm.Connection,
"sp_LoadUserInfo", parameters);
}
catch (SqlException ex)
{
//this gives me a error object
}
if (reader.Read())
user = new UsersDF(reader);
}
return user;
}
现在我的问题是假设如果 SP 不存在,那么它会给我一个错误或任何其他 SQLException。由于此方法是从我的 aspx.cs 页面调用的,因此我想返回一些有意义的完整消息,说明可能出了什么问题,以便用户了解存在问题并且他/她应该再次重试登录。
但我不能,因为该方法返回 User 类的实例,所以我怎样才能返回消息呢??
我希望我说清楚了!
谢谢。
【问题讨论】:
-
业务逻辑层不负责向用户提供反馈 - 只是向表示层提供反馈。您可以向 PL 抛出异常,并让 PL 在尝试
LoadUserInfo的页面上显示错误消息。
标签: c# asp.net exception-handling