PHPUnit try catch在测试用例中不起作用


PHPUnit try catch does not work in a test case

我试图在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反斜杠异常特定于命名空间,不会被匹配(或捕获)。