Php 无法捕获ReflectionException?

Php 无法捕获ReflectionException?,php,exception,reflection,Php,Exception,Reflection,我有以下代码: namespace Some\Different\Name; try { $reflect = new ReflectionClass($class); X: $instance = $reflect->newInstanceArgs($args); } catch (ReflectionException $e) { exit($e->getMessage());

我有以下代码:

namespace Some\Different\Name;
        try {
            $reflect  = new ReflectionClass($class);
X:          $instance = $reflect->newInstanceArgs($args);
        } catch (ReflectionException $e) {
            exit($e->getMessage());
        }
我正在测试它,试图抛出一个ReflectionException。它给了我:

致命错误:未捕获的异常“ReflectionException”与消息 '类MyClass没有构造函数,因此无法传递任何 构造函数参数在。。。在第X行

我做错了什么


PS:我知道为什么会抛出异常,我只是想知道为什么它没有被捕获

最后。这是一个名称空间问题。奇怪的是,PHP没有通知您试图捕获当前命名空间中不存在的类型(
ReflectionException
)的异常

只需将
\
添加到
\ReflectionException
中,就可以帮助我解决问题,因为现在它能够找到我实际要查找的异常类型

另一个解决办法是增加:

use \ReflectionException;

就在名称空间声明之后。

确实很奇怪。一般的
捕获(异常$e)
会捕获它吗?请添加该错误的回溯。这真的很奇怪,我测试了它,只测试了下面的代码,它就工作了。在我正在处理的上下文中,我确信
$class
存在,并且通过错误表示该类没有构造函数这一事实得到证实
$args
在本例中是一个空数组。由于存在自动加载,因此PHP事先不知道将来会出现哪些异常;)PHP告诉您有一个未捕获的异常,甚至将其命名为。。。处理名称空间时很容易监督。发生在我们最好的人身上。