Почему Symfony2 не перехватывает исключения

У меня есть репозиторий

class TurnoRepository extends EntityRepository { public function findTurnoActivo() { $q = $this ->createQueryBuilder('t') ->where('t.activo = :activo') ->setParameter('activo', true) ->getQuery(); return $q->getSingleResult(); } } 

этот метод выдает NoResultException, но если я пытаюсь поймать в своем контроллере

 private function obtenerTurno() { $em = $this->getDoctrine()->getEntityManager(); $turno = null; try { $turnoActivo = $em->getRepository('MyBundle:Turno')->findTurnoActivo(); } catch (NoResultException $e) { return false; } return $turno; 

}

всегда я получаю 500 внутренних ошибок сервера на моей странице

Код Symfony2 содержит NoResultException , поэтому вам нужно добавить правильное пространство имен для класса NoResultException , попробуйте использовать:

 catch (\Doctrine\ORM\NoResultException $e) 

Обратите внимание на обратную косую черту перед пространством имен Doctrine или импортируйте класс NoResultException с помощью use .

Вы можете использовать $q->getOneOrNullResult(); если вы не хотите поймать NoResultException в контроллере.