ReflectionException无法被捕获?

Sho*_*hoe 6 php reflection exception

我有这个代码:

namespace Some\Different\Name;
        try {
            $reflect  = new ReflectionClass($class);
X:          $instance = $reflect->newInstanceArgs($args);
        } catch (ReflectionException $e) {
            exit($e->getMessage());
        }
Run Code Online (Sandbox Code Playgroud)

我正在测试它试图抛出一个ReflectionException.它给了我:

致命错误:带有消息'Class MyClass的未捕获异常'ReflectionException'没有构造函数,所以你不能在第X行的......中传递任何构造函数参数.

我究竟做错了什么?

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

Sho*_*hoe 6

最后.这是命名空间问题.PHP没有通知你试图捕获ReflectionException当前命名空间中不存在的type()异常的方式很奇怪.

只需添加\\ReflectionException我的帮助,因为现在是能找到什么类型的异常,我实际上是寻找.

另一种解决方案是添加:

use \ReflectionException;
Run Code Online (Sandbox Code Playgroud)

就在命名空间声明之后.

  • 有自动加载,所以PHP事先不知道未来将带来哪些例外;)并且PHP告诉你有一个未被捕获的异常甚至命名它......在处理命名空间时很容易监督.发生在我们最好的人身上. (2认同)