我有如下代码
try {
$user = $query->getSingleResult();
} catch (Doctrine\ORM\NoResultException $e) {
return null;
} catch (Exception $e) {
return null;
}
Run Code Online (Sandbox Code Playgroud)
getSingleResult()NoResultException如果没有找到行将抛出.似乎我仍然得到例外......捕获似乎不起作用.这是为什么?
Jan*_*nen 34
如果您的代码是命名空间,请尝试使用:
catch (\Doctrine\ORM\NoResultException $e)
Run Code Online (Sandbox Code Playgroud)
请注意Doctrine命名空间前面的反斜杠.
你需要这样做的原因是因为PHP的命名空间是相对的,而不是绝对的.
如果您的代码被命名为My\Namespace,并且您尝试捕获Doctrine\ORM\NoResultException,实际上它会尝试捕获My\Namespace\Doctrine\ORM\NoResultException.
通过在名称空间前加上\,使其成为绝对名称(类似于unix路径名)
| 归档时间: |
|
| 查看次数: |
9346 次 |
| 最近记录: |