我试图在PHPUnit测试中捕获异常,但它不能按我的预期工作。这个例外似乎陷入了更高层次,我不明白为什么。
public function testException()
{
echo 'Enter';
try {
throw new Exception('error.');
} catch (Exception $e) {
echo 'catch Exception';
}
echo 'End';
}
在输出中,只有'Enter'可见。我没有达到'结束'。 (我使用的是PHP7)
由于
编辑:
用Exception
替换所有\Exception
解决了我的问题
答案 0 :(得分:5)
处理异常可能很棘手,尤其是当它们被称为Exception
时: - )
只需查看this (almost the same) question生成的所有反馈。
现在,只有在与预期类不匹配时才会捕获异常。在这种情况下,肯定是因为非精确的Exception
类名称规范,通过将它们指定为\Exception
,肯定会修复它。
一位评论者巧妙地提到了上述问题主题:
没有反斜杠异常是特定于命名空间的,不会匹配(或捕获)。