如何在asp.net 3层应用程序中处理此异常?

时间:2014-02-02 18:31:50

标签: c# asp.net exception-handling 3-tier

我是一名新的ASP.net开发人员,我正在尝试在我简单的3层基于Web的应用程序中添加适当的异常处理。通过关注this post,我在数据访问层(DAL)和用户界面(UI)中完成了以下操作:

DAL:

public IEnumerable<Survey> getData()
{
    List<Survey> surveysList = new List<Survey>();
    try
    {
        using (ItemsDBEntities context = new ItemsDBEntities())
        {
            surveysList = (from survey in context.Surveys
                         select new Survey()
                         {
                             ID = survey.ID,
                             startDate = survey.StartDate,
                             EndDate = survey.EndDate,
                             Description = survey.Description
                         }).ToList();
        }
    }
    catch (EntityException ex)
    {
        //something wrong about entity
        throw new ConnectionFailedException(ex);
    }
    catch (Exception ex)
    {
        //Don't know what happend... 
    }
    return surveysList;
}

用户界面的代码:

private void bindGrid()
{
    Survey survey = new Survey();
    try
    {
        GridView1.DataSource = survey.getData();
        GridView1.DataBind();
        GridView1.Visible = true;
    }
    catch (ConnectionFailedException)
    {
        Label1.Text = "There was a problem accessing the database, please try again.";
    }
}

但是,我仍然在

下面有一条红线
  

ConnectionFailedException

在每一层,我不知道为什么,它给了我以下错误:

  

类型或命名空间名称'ConnectionFailedException'不可能   发现(你错过了使用指令或程序集   引用?)TestWebsite \ App_Code文件\ DAL \ Survey.cs

我该如何修复这个问题?我不想为每个异常类型创建一个类,就像我到目前为止所做的那样。 如果可能的话,请你帮我提供帮助和示例吗?

1 个答案:

答案 0 :(得分:0)

您尚未添加Microsoft.Rfid.SpiSdk程序集引用或构建中可能遗漏Dll

Namespace: Microsoft.SensorServices.Rfid.Dspi
Assembly: Microsoft.Rfid.SpiSdk (in microsoft.rfid.spisdk.dll)