как правильно поймать ошибку?
От: zelenyi_slon  
Дата: 20.02.11 13:04
Оценка:
сразу оговорюсь, у меня ASP.NET MVC приложение, но суть не в этом
например, есть метод:

        public Portal Portal(int PortalID)
        {
            var q = from i in _dataContext.Portals where i.PortalID == PortalID select i;
            return q.FirstOrDefault();
        }



потом есть метод в классе-репозитории:

        public void PortalCategories(int PortalID)
        {
            Models.Portal portal = Portal(PortalID);
// тут какие-то действия, производящиеся над порталом
        }


и наконец метод в контроллере:


        public ActionResult PortalCategories(int PortalID)
        {
            _repository.PortalCategories(PortalID);
return View();
        }


мне нужно поймать если переданное ID некорректно, т.е. Portal(PortalID) вернуло нулл.
Я могу:
1. добавить ещё одну строчку в метод контроллера с проверкой. Тогда этот метод будет выглядеть типа:

        public ActionResult PortalCategories(int PortalID)
        {
Models.Portal portal = Portal(PortalID);
if (portal!=null)
{
            _repository.PortalCategories(PortalID);
}
else
{
//write to log
}
return View();
        }

всё хорошо, только лишний запрос к БД.

2. добавить проверку в метод репозитория. Но тогда нужно либо что-то возвращать либо кидать вверх эксепшн (хотя он и сам кинется), а в методе контроллера его ловить. Или есть ещё путь? Как правильно?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.