php - 为什么 Symfony2 不捕获异常

标签 php symfony exception-handling

我有一个仓库

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

        return $q->getSingleResult();
    }
}

此方法抛出 NoResultException 但如果我尝试在我的 Controller 中捕获

private function obtenerTurno()
{
    $em = $this->getDoctrine()->getEntityManager();
    $turno = null;

    try {
        $turnoActivo = $em->getRepository('MyBundle:Turno')->findTurnoActivo();
    } catch (NoResultException $e) {
        return false;
    }

    return $turno;

我的页面上总是出现 500 Internal Server Error

最佳答案

Symfony2 代码是命名空间的,因此您必须为 NoResultException 类添加正确的命名空间,尝试使用:

catch (\Doctrine\ORM\NoResultException $e)

注意 Doctrine 命名空间前面的反斜杠,或者使用 use 导入 NoResultException 类。

关于php - 为什么 Symfony2 不捕获异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12229120/

相关文章:

php自定义异常

ruby-on-rails - 挽救 Rails Controller 中的无效日期

php - 在 mysql 中查找日期范围内的结果无法正常工作

php - 如何从 PHP 检查 MySQL 中的某个单元格是否等于 0?

symfony - 如何在Symfony2中测试基于子域的路由

带有命名 Assets 的 Symfony Assets ,在生产环境中转储两次?

javascript - 从第 3 方网站下载 csv 文件的 PHP 代码

php - Alexa Rank 到流量估算公式

forms - 尝试在Symfony2中使用嵌入式表单时出错

Java - 从反射调用的构造函数中捕获异常