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