Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Przeskakiwanie wyjątków
Forum PHP.pl > Forum > PHP
Asmox
Witam, chciałbym się dowiedzieć jak się zachowuje PHP, kiedy nie ma throw w bloku try{}. Na przykładzie mojej aplikacji wyjątek rzuca klasa widoku xhtml, że nie może odnaleźć szablonu. Przechwytywanie wyjątku jest dopiero w pliku index, gdzie ustawiłem ten blok przechwytujący wyjątek. Ogólnie działa to tak: index.php -> klasa www -> klasa xhtml. W przypadku gdy klasa xhtml rzuci wyjątek wszystko niby wraca do index.php tylko jest jedna sprawa:
  1. try {
  2. require_once("./application/modules/$moduleName.php");
  3. $module = new $moduleName();
  4. }

require to tylko załączenie pliku z klasą modułu (który traktuję jako kontroler stron www, a nie bloga czy forum np.). Ale kiedy dam tę instrukcję ponad try, to nie chce mi wyłapywać tych wyjątków. Czy mógłby mi ktoś powiedzieć, dlaczego tak się dzieje?
lukaskolista
masz wlaczona obsluge wszystkich wyjatkow? error_reporting(E_ALL) lub w konfiguracji php
Zyx
^^ Powyższą odpowiedź powinno się rozstrzelać. error_reporting() nie ma nic wspólnego z wyjątkami, a nawet jak się podmieni obsługę błędów w PHP, to ustawienia te są ignorowane.

Asmox -> co do Twojego problemu, to cóż... widocznie require_once() oprócz zwykłego definiowania klasy, wykonuje też jakiś inny kod i ten kod rzuca wyjątek. Innego wytłumaczenia nie ma.
Asmox
Masz całkowitą rację, gdzieś w pliku miałem pod definicją klasy testowy kod rzucający wyjątki, dlatego tak się stało. Głupi błąd szczerze mówiąc, przepraszam - temat można zamknąć.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.