Добрый день!
Правильным будет следующий вариант:
public IEnumerable<Adresses> GetAdresses()
{
try
{
return dbContext.Adresses.ToList();
}
catch (Exception ex)
{
// Логируем ошибку - что-то вроде:
//_loggerService.Error(ex);
throw;
}
}
А снаружи, например, у Вас будет метод, который при ловле исключения будет выдавать что-то осознанное пользователю:
public ActionResult Addresses()
{
try
{
var addressList = _dataService.GetAdresses();
return View("_Addresses", addressList);
}
catch (Exception ex)
{
TempData["Error"] = "Не удалось загрузить список адресов. Попробуйте позже."
return View("_Addresses");
}
}
Во View я бы тоже советовал всегда делать проверку на null, потому что по независящим от Вас причинам Model спокойно может быть null. И лучше на клиенте такие ситуации обрабатывать, чтобы у Ваших пользователей не было ступора и они не перестали пользоваться Вашим веб-приложением.
<div>
@if(Model != null && Model.Any())
{
<div>
@foreach(var address in Model)
{
@*Здесь вывод Ваших адресов*@
}
</div>
}
else
{
<div>
@TempData["Error"]
</div>
}
</div>