以下是我得到的例外情况:
虽然预计至少有一行,但未找到查询结果。
当在数据库中找不到用户标识时,我基本上得到了该异常。 以下是我的路线:
localhost/../user/18
和我控制器中的代码:
public function showAction(User $user){
// ..
}
我知道我可以使用内核事件异常来处理这个问题,但有没有更简单的方法来捕获ParamConverter生成的异常?
答案 0 :(得分:16)
在某些情况下,如果找不到对象,则手动抛出异常很有用。如果通过向param添加默认值找不到实体,则可以告诉操作跳过抛出异常。
示例:
public function showUser(User $user = null) {
if (empty($user)) {
throw new CustomExceptionYouWant();
}
...
}
答案 1 :(得分:2)
您可以通过实现ParamConverterInterface创建用户ParamConverter,并在其中创建可用作自定义异常或进行其他处理的方法。
这是您想要创建的Custom ParamConverter
的一个很好的例子