Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Symfony]Wyjątki try catch
blackroger
post 7.09.2009, 00:50:19
Post #1





Grupa: Zarejestrowani
Postów: 176
Pomógł: 0
Dołączył: 8.11.2008

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


Mam problem. Otóż mam takie coś:

  1. try
  2. {
  3. $con->beginTransaction();
  4.  
  5. $r = new Rejestracja();
  6.  
  7. $r->setLogin($request->getParameter('login'));
  8. $r->setHaslo($request->getParameter('haslo'));
  9. $r->setImie($request->getParameter('imie'));
  10. $r->setNazwisko($request->getParameter('nazwisko'));
  11. $r->setMiasto($request->getParameter('miasto'));
  12. $r->setMail($request->getParameter('mail'));
  13. $r->setData(date("Y-m-d"));
  14.  
  15. $r->save();
  16. $con->commit();
  17.  
  18. return $this->forward('register', 'thank_you');
  19. } catch(Exception $e)
  20. {
  21. $con->rollback();
  22.  
  23. return $this->forward('register', 'error');
  24. //throw($e);
  25. }
  26. //return $this->forward('register', 'thank_you');

Wszystko działa dobrze (bez throw()), gdy daje return $this->forward('register', 'thank_you'); poza blokiem try. Gdy jest w środku - pojawia się warning, dochodzi do poprawnego przekierowania a następnie catch przechwytuje i przekierowuje do error:


Dziękujemy!

Warning: Cannot modify header information - headers already sent by (output started at /usr/share/php/symfony/response/sfResponse.class.php:105) in /usr/share/php/symfony/response/sfWebResponse.class.php on line 335

Warning: Cannot modify header information - headers already sent by (output started at /usr/share/php/symfony/response/sfResponse.class.php:105) in /usr/share/php/symfony/response/sfWebResponse.class.php on line 349
Błąd transakcji!


Gdy używam throw() problem rozwiązuje się częściowo, gdyż warningi nie występują, ale w przypadku błędu blok catch przechwytuje wyjątek a throw wyrzuca błąd uniemożliwiając przeforwardowanie return $this->forward('register', 'error'); Ustawienie throw() przed czy po return forward nie załatwia sprawy.

Zaznaczam raz jeszcze, że problem występuje tylko i wyłącznie przy zastosowaniu try, catch...
Symfony Framework.

Ten post edytował Ociu 7.09.2009, 11:12:18
Powód edycji: [Ociu]: dodałem tag.
Go to the top of the page
+Quote Post

Posty w temacie


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 Wersja Lo-Fi Aktualny czas: 14.06.2025 - 15:39