Как обработать это исключение в трехуровневом приложении asp.net?

Я новый разработчик ASP.net, и я пытаюсь добавить правильную обработку исключений в свое простое трехуровневое веб-приложение. Следуя этому сообщению, я сделал, например, следующее в Уровень доступа к данным (DAL) и пользовательский интерфейс (UI):

ДАЛ:

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» не найдено (вам не хватает директивы using или ссылки на сборку?) TestWebsite\App_Code\DAL\Survey.cs

Как я могу это исправить? Я не хочу создавать класс для каждого типа исключения, которое я собираюсь генерировать, как это было сделано до сих пор. Не могли бы вы предоставить мне помощь и пример, если это возможно?


person user3107976    schedule 02.02.2014    source источник
comment
Сборка, содержащая ConnectionFailedException, упоминается в вашем проекте? Если да, то есть ли у вас соответствующие директивы using? Кроме того, примечание об исключениях: не перехватывайте исключение и ничего не делайте (например, пустой блок перехвата). Если вы не можете обработать исключение, пусть оно всплывает, пока что-то, что может его обработать, не перехватит его.   -  person Daniel Mann    schedule 02.02.2014


Ответы (1)


Вы не добавили Microsoft.Rfid.SpiSdk ссылку на сборку ИЛИ Dll могли быть пропущены в сборке

Namespace: Microsoft.SensorServices.Rfid.Dspi
Assembly: Microsoft.Rfid.SpiSdk (in microsoft.rfid.spisdk.dll)
person Siva Charan    schedule 02.02.2014
comment
Я не думаю, что выбрасываю правильное исключение. Что вы думаете? - person user3107976; 02.02.2014
comment
@user3107976: user3107976: Ошибка очищается, говоря, что .... 'ConnectionFailedException' не может быть найдено (вам не хватает директивы использования или ссылки на сборку... - person Siva Charan; 02.02.2014