Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [ZF] Wyjątki i łapanie. Action Helper
kangur91
post
Post #1





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 27.07.2008

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


Witam,
Szukam i szukam i nie mogę znaleźć rozwiązania. Mianowicie "Jak wyłapywać wyjątki wyrzucone z Action Helpera?".

Jeżeli np. w Action Helper rzucam wyjątek
  1. throw new Zend_Exception('You are not allowed',403);

Otrzymuję wynik
  1. Fatal error: Uncaught exception 'Zend_Exception' with message 'You are not allowed' in..


Mam ustawiony standardowy ErrorController oraz throwExceptions mam ustawione na false.

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
KrzysiekWildfire
post
Post #2





Grupa: Zarejestrowani
Postów: 93
Pomógł: 11
Dołączył: 27.10.2010
Skąd: Kutno/Poznań

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


Na moje oko działa to poprawnie, z mojego doświadczenia:
Nie ma różnicy pomiędzy:
  1. throw new Exception('error!');

a
  1. throw new Zend_Exception('You are not allowed',403);


Jeżeli w application.ini masz ustawione:

phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
resources.frontController.params.displayExceptions = 1


To wyświetla Ci wszystkie błędy, tak abyś mógł dojść gdzie jest błąd, a w przypadku:

phpSettings.display_startup_errors = 0
phpSettings.display_errors = 0
resources.frontController.params.displayExceptions = 0


To wyświetla Ci tylko informację o błędzie. Dobry efekt z takimi błędami jest, gdy wykorzystujesz layouty - wtedy masz zachowany cały layout strony (nawigację) i użytkownik nie widzi białej strony z błędami których nie rozumie.
Go to the top of the page
+Quote Post
drPayton
post
Post #3





Grupa: Zarejestrowani
Postów: 890
Pomógł: 65
Dołączył: 13.11.2005
Skąd: Olsztyn

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


A spróbuj metodą chyba najprostszą:

w index.php:

  1. try {
  2.  
  3. (...)
  4.  
  5. $app->bootstrap()->run();
  6.  
  7. (...)
  8.  
  9. } catch(Exception $oException) {
  10.  
  11. // i tu go obsłuż
  12. }


Trochę to chyba niepoważne, ale ja jak do tej pory nie znalazłem innej (prostej) metody na łapanie absolutnie wszystkich wyjątków wstydnis.gif

99% było łapanych i obsługiwanych przez standardowy ErrorController, ale niektóre były mocno oporne...

Ten post edytował drPayton 14.06.2011, 19:28:34
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 03:52