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, но как?
Если вы хотите только поймать конкретное исключение, укажите класс исключения в блоке catch.
try {} catch (\PDOException $e) {}