ReflectionException не может быть пойман? - PullRequest
6 голосов
/ 25 февраля 2012

У меня есть этот код:

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

, и я тестирую его, пытаясь создать исключение ReflectionException.И это дает мне:

Неустранимая ошибка: необработанное исключение «ReflectionException» с сообщением «Класс MyClass не имеет конструктора, поэтому вы не можете передавать аргументы конструктора» в ... в строке X.1007 *

Что я делаю не так?

PS: я знаю, почему выбрасывается исключение, я просто хочу знать, почему оно не поймано!

1 Ответ

6 голосов
/ 25 февраля 2012

Наконец-то. Это была проблема с пространством имен. Странно, что PHP не сообщает, что вы пытаетесь перехватить исключение типа (ReflectionException), которого нет в текущем пространстве имен.

Просто добавление \ к \ReflectionException помогло мне, потому что теперь он может найти, какой тип исключения я на самом деле ищу.

Другое решение было бы добавить:

use \ReflectionException;

сразу после объявления пространства имен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...