【问题标题】:Catching doctrine exception Symfony2捕捉学说异常 Symfony2
【发布时间】:2014-04-24 15:02:55
【问题描述】:

我怎样才能捕捉到教义异常? 我正在尝试在这里找到的代码: How to catch Exception in symfony 2? Why Symfony2 dont catch exceptions 但这不起作用。

代码:

try{

    $emOperateur->flush();                      
    return $this->redirect($request->getUri());

}catch(\Doctrine\ORM\ORMException $e){

    $this->get('session')->getFlashBag()->add('error', 'Blablablabla');
}

当我插入一个具有相同主键的元组时,它不会被捕获,并且我有一个带有经典错误消息的屏幕。

【问题讨论】:

  • 你期望抛出什么异常?也许您想要的异常类型不同。我的意思是您确定该学说会引发异常吗?
  • 尝试捕捉\Exception
  • Afaik,这种异常是在->persist(...) 中抛出的,而不是在->flush() 中。如果您将 try..catch 构造放在 ->persist(...) 调用周围会发生什么?
  • 尝试捕捉\Exception $e 如果教义抛出错误,您将知道它是否确实+确切的错误类别

标签: symfony doctrine-orm doctrine try-catch


【解决方案1】:

在相关说明中,您应该首先检查重复主键之类的内容(您可以使用原则验证器),因为如果您收到原则异常,实体管理器将关闭并且您将无法恢复来自它。

【讨论】:

    【解决方案2】:

    尝试捕捉 \Exception

    try{
        ...
     }catch(\Exception e){
        echo($e->getMessage());
     }
    

    【讨论】:

      猜你喜欢
      • 2018-01-04
      • 2012-01-10
      • 2020-04-20
      • 1970-01-01
      • 1970-01-01
      • 2023-04-04
      • 1970-01-01
      • 1970-01-01
      • 2012-03-20
      相关资源
      最近更新 更多