PHP не ловит исключение (пространство имен) - PullRequest
1 голос
/ 14 октября 2011

Подводя итог: у меня есть класс исключений (\ core \ exceptions \ GuruMeditationException), который расширяется от \ Exception. Любой другой класс исключений просто происходит от моего собственного класса исключений. Когда мой код запускается и выдается исключение, все работает идеально для меня.

Сейчас: Предположим, у меня есть класс (\ app \ HomeView), который простирается от \ core \ base \ mvc \ View. Исключения, возникающие там, тоже ловятся отлично. Объявление класса выглядит так:

namespace app;
class HomeView extends \core\base\mvc\View {
}

Но: Если я сделаю следующее:

namespace app;
class HomeView extends \core\base\mvc\DoesNotExist {   # line 5
}

тогда исключений больше не поймано. Я уже пытался поймать все исключений, которые я создал, с пространством имен и без него. Я также пытался поймать «Exception» и «\ Exception», но ничего не поможет. Вместо этого я получаю сообщение об ошибке, похожее на это:

Fatal error: Class 'core\base\mvc\DoesNotExistView' not found in /var/www/abuhome/htdocs/test-namespace/class/HomeView.class.php on line 5

Call Stack:
0.0001     635104   1. {main}() /var/www/abuhome/htdocs/test-namespace/index.php:0
0.0135    1536280   2. core\Quantum->make() /var/www/abuhome/htdocs/test-namespace/index.php:36
0.0135    1540880   3. core\scriptlet\ProtocolScriptlet->dispatch() /home/equinox/qf-namespace/class/Quantum.class.php:124
0.0136    1540880   4. core\scriptlet\XhtmlScriptlet->dispatch() /home/equinox/qf-namespace/class/scriptlet/ProtocolScriptlet.class.php:39
0.0136    1540880   5. core\template\tpl\TplContainerParser->parseContainerFile() /home/equinox/qf-namespace/class/scriptlet/XhtmlScriptlet.class.php:22
0.0139    1564656   6. core\scriptlet\ContentScriptlet->executeSuitingRequestParameter() /home/equinox/qf-namespace/class/template/tpl/TplContainerParser.class.php:42
0.0139    1564656   7. core\scriptlet\ContentScriptlet->processMainContent() /home/equinox/qf-namespace/class/scriptlet/ContentScriptlet.class.php:145
0.0141    1573640   8. core\scriptlet\ContentScriptlet->processModule() /home/equinox/qf-namespace/class/scriptlet/ContentScriptlet.class.php:154
0.0143    1583808   9. include('/var/www/abuhome/htdocs/test-namespace/modules/home.php') /home/equinox/qf-namespace/class/scriptlet/ContentScriptlet.class.php:174
0.0143    1584248  10. uses() /var/www/abuhome/htdocs/test-namespace/modules/home.php:4
0.0151    1637696  11. require_once('/var/www/abuhome/htdocs/test-namespace/class/HomeView.class.php') /home/equinox/qf-namespace/functions/uses.function.php:49

Может кто-нибудь помочь мне, пожалуйста? Я думаю, что что-то забыл, но я не могу понять, что это такое. <</p>

спасибо

1 Ответ

3 голосов
/ 14 октября 2011

Нельзя перехватить или остановить фатальные ошибки, они фатальны.

Синтаксическая ошибка не является исключительным обстоятельством.

...