为什么我的例外未被捕获?
try {
\Account::destroy($id);
return Redirect::to("/manager/account")
->with("success_message", "Item excluido com sucesso");
} catch (Exception $e) {
return Redirect::to("/manager/account/{$id}/edit")
->with("error_message", "Erro ao excluir item");
}
SQLSTATE [23000]:完整性约束违规:1451无法删除或 更新父行:外键约束失败 (
imob_io
。users
,CONSTRAINTusers_account_id_foreign
FOREIGN KEY (account_id
)REFERENCESaccounts
(id
))(SQL:delete fromaccounts
其中id
= 2)
答案 0 :(得分:5)
目前,您正在当前命名空间中捕获类Exception
。相反,您应该引用全局类型\Exception
:
catch (\Exception $e){
return Redirect::to("/manager/account/{$id}/edit")
->with("error_message", "Erro ao excluir item");
}
我还建议你缩小一点,而不是只捕获每个异常。例如,您可以捕获QueryException
,这将因违反约束而被抛出等。
catch(\Illuminate\Database\QueryException $e)