PHPUnit try catch在测试用例

时间:2016-09-01 17:16:45

标签: php exception phpunit

我试图在PHPUnit测试中捕获异常,但它不能按我的预期工作。这个例外似乎陷入了更高层次,我不明白为什么。

public function testException()
    {
        echo 'Enter';
        try {
            throw new Exception('error.');
        } catch (Exception $e) {
            echo 'catch Exception';
        }
        echo 'End';
    }

在输出中,只有'Enter'可见。我没有达到'结束'。 (我使用的是PHP7)

由于

编辑: 用Exception替换所有\Exception解决了我的问题

1 个答案:

答案 0 :(得分:5)

处理异常可能很棘手,尤其是当它们被称为Exception时: - )

只需查看this (almost the same) question生成的所有反馈。

现在,只有在与预期类不匹配时才会捕获异常。在这种情况下,肯定是因为非精确的Exception类名称规范,通过将它们指定为\Exception,肯定会修复它。

一位评论者巧妙地提到了上述问题主题:

  

没有反斜杠异常是特定于命名空间的,不会匹配(或捕获)。