2014-02-02 2 views
0

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

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

в каждом ярусе, и я не знаю, почему, и он дал мне следующую ошибку:

The type or namespace name 'ConnectionFailedException' could not be found (are you missing a using directive or an assembly reference?)TestWebsite\App_Code\DAL\Survey.cs

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

+1

Является ли сборка, которая содержит 'ConnectionFailedException' ссылки в вашем проекте? Если да, у вас есть соответствующие 'use' директивы? Кроме того, примечание об исключениях: не поймайте исключение и ничего не делайте (например, пустой блок catch). Если вы не можете справиться с этим исключением, пусть он пузырится до тех пор, пока что-то, что * не сможет обработать его, поймает его. –

ответ

0

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

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

Я не думаю, что я выбрал правильное исключение. Как вы думаете? – user3107976

+0

@ user3107976: Ошибка очистки, заявив, что «....« ConnectionFailedException »не найден (вам не хватает директивы using или ссылки на сборку ...» –

 Смежные вопросы

  • Нет связанных вопросов^_^