Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Przeskakiwanie wyjątków
Asmox
post
Post #1





Grupa: Zarejestrowani
Postów: 359
Pomógł: 12
Dołączył: 16.01.2009

Ostrzeżenie: (0%)
-----


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?
Go to the top of the page
+Quote Post
lukaskolista
post
Post #2





Grupa: Zarejestrowani
Postów: 872
Pomógł: 94
Dołączył: 31.03.2010

Ostrzeżenie: (0%)
-----


masz wlaczona obsluge wszystkich wyjatkow? error_reporting(E_ALL) lub w konfiguracji php
Go to the top of the page
+Quote Post
Zyx
post
Post #3





Grupa: Zarejestrowani
Postów: 952
Pomógł: 154
Dołączył: 20.01.2007
Skąd: /dev/oracle

Ostrzeżenie: (0%)
-----


^^ 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.
Go to the top of the page
+Quote Post
Asmox
post
Post #4





Grupa: Zarejestrowani
Postów: 359
Pomógł: 12
Dołączył: 16.01.2009

Ostrzeżenie: (0%)
-----


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ąć.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 04:27