我试图在PHPUnit测试中捕获异常,但它不像我预期的那样工作。这个异常似乎被高层捕获了,我不明白为什么。
public function testException()
{
echo 'Enter';
try {
throw new Exception('error.');
} catch (Exception $e) {
echo 'catch Exception';
}
echo 'End';
}
在输出中只有"Enter"是可见的。我没有到达"终点"。(我使用的是PHP7)
感谢编辑:用'Exception
替换所有Exception
解决了我的问题
处理异常可能很棘手,特别是当它们被称为Exception
:-)
看看这个(几乎相同的)问题所产生的所有反馈。
现在,只有当与期望的类不匹配时才不会捕获异常。在这种情况下,这肯定是因为不精确的Exception
类名称规范,这肯定会通过将它们指定为'Exception
来修复。
正如上述问题线程中的一位评论者巧妙地提出的那样:
Without反斜杠异常特定于命名空间,不会被匹配(或捕获)。