我试图在 PHPUnit 测试中捕获异常,但它没有按预期工作。异常似乎在更高级别被捕获,我不明白为什么。
public function testException()
{
echo 'Enter';
try {
throw new Exception('error.');
} catch (Exception $e) {
echo 'catch Exception';
}
echo 'End';
}
在输出中只有“Enter”可见。我没有到达“终点”。 (我使用的是 PHP7)
谢谢
编辑:
用 \Exception
替换所有 Exception
解决了我的问题
最佳答案
处理异常可能很棘手,尤其是当它们被称为 Exception
:-)
看看所有的反馈this (almost the same) question已生成。
现在,只有与预期的类不匹配时才捕获异常。在这种情况下,肯定是因为不精确的 Exception
类名规范,这肯定会通过将它们指定为 \Exception
来解决。
正如上述问题线程中的评论者巧妙地指出的那样:
Without the backslash Exception is specific to the namespace and won't be matched (or caught).
关于PHPUnit try catch 在测试用例中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39277421/