我想在执行捕捉异常:
try {
$em->remove($education);
$em->flush();
} catch(PDOException $e) {
var_dump($e->getMessage());
die;
}
我也试过\Exception
和\Doctrine\ORM\ORMException
,但没有一次成功。
相反倾销异常消息我得到我试图避免受凉异常同样的错误:
[3/3] ForeignKeyConstraintViolationException:执行发生异常 '?DELETE FROM trainee_education WHERE ID ='与 PARAMS [2]:
SQLSTATE [23000]:完整性约束违规:1451不能删除或 更新父行,外键约束失败 (
trainingexperience
internship
,约束FK_10D1B00C2CA1BD71
外键(education_id
)引用。trainee_education
(id
))
我知道为什么我的约束失败,没有新的东西。但我想要得到一个异常,所以我可以通知用户他不能删除一个对象,他之前用它来创建关系。
异常说它的名字是'ForeignKeyConstraintViolationException'而不是'PDOException',你确定第一个扩展了第二个吗?你应该尝试捕获'ForeignKeyConstraintViolationException'并参阅。或者确保尝试捕获异常,那么你可以找出抛出哪个类作为异常 – smarber
@smarber \ Exception也不起作用,这就是为什么我在这里问了一个问题。谢谢你的意见,我会尝试,并会让你知道。 –