【问题标题】:CakePHP 3 - Catch ErrorCakePHP 3 - 捕捉错误
【发布时间】:2016-02-10 09:35:01
【问题描述】:
use Cake\Core\Exception\Exception;


for($i=1; $i<count($values); $i++) {
        $entity = $table->newEntity();

        // irrelevant code

        try {
            $table->save($entity);
        } catch (Exception $e) {
            $errors[$i-1] = $values[$i];
        } finally {
            if(count($errors) == 0)
                $this->Flash->success('All rows are successfully imported. ');
            else {
                $this->Flash->error('Not all rows are successfully imported. ');
                debug($errors);
            }
        }
    }

我想要做的是捕获冲突的实体并将它们展示给用户。

我得到的是一个 PDO 异常。不冲突的仍然插入,我想要的。

所以我只想捕获 PDO 异常,但是如何捕获呢?

【问题讨论】:

标签: php cakephp error-handling cakephp-3.0


【解决方案1】:

如果只想捕获特定异常,请在 catch 块中指定异常类。

try
{}
catch (\PDOException $e)
{}

【讨论】:

  • 我知道,但这不是我的问题。已经这样做了。
  • 你到底想做什么?
  • @dnns 你这样做了,可能忘记了前导命名空间分隔符,就像 Gerd 所做的那样。 PDOException 存在于全局命名空间中。
  • 非常感谢。由'\'解决。
  • 从昨天开始我就遇到了同样的问题。一直在尝试 try{}catch(PDOException $e) 是否带有前导 \。没有得到任何结果。
猜你喜欢
  • 1970-01-01
  • 2010-12-05
  • 2013-10-12
  • 1970-01-01
  • 2020-04-02
  • 2014-03-25
  • 2018-04-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多