Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][OOP] Wyjątki
Forum PHP.pl > Forum > Przedszkole
Saddam92
Witam smile.gif

Mam do Was wielką prośbę o pomoc. Piszę sobie system oparty na OOP i korzystający z OPT, OPD (nakładka na PDO) oraz z własnej klasy błędów. Problem pojawia się przy wychwytywaniu wyjątków. Mam coś takiego
  1. <?php
  2. try
  3. {
  4. try
  5. {
  6. /* konfiguracja opd */
  7. try
  8. {
  9. /* kod */
  10. }
  11. catch(optException $e)
  12. {
  13. optErrorHandler($e);
  14. }
  15. }
  16. catch(PDOException $e)
  17. {
  18. opdErrorHandler($e);
  19. }
  20. }
  21. catch (Error $e)
  22. {
  23. $e->Report();
  24. }
  25. ?>
czy to jest poprawne ? Czy można zrobić to jakoś inaczej (np. w jednym try) ?

Proszę o pomoc, i ewentualne porady co do tego co napisałem.
Pozdrawiam:)
scanner
Oczywiście, że powinieneś uzyć jednego bloku try{} - zagnieżdżanie ich raczej nie ma sensu z tego co widzę w Twoim kodzie.
Saddam92
Dzięki za odp. smile.gif

Tylko czy mogę zrobić coś takiego
  1. <?php
  2. try
  3. {
  4. /* kod */
  5. }
  6. catch(PDOException $e)
  7. {
  8. opdErrorHandler($e);
  9. }
  10. catch(optException $e)
  11. {
  12. optErrorHandler($e);
  13. }
  14. catch(Error $e) {
  15. $e->Report();
  16. }
  17. ?>
Czy też trzeba to jakoś inaczej zrobić ? (w jednym catch questionmark.gif )
.radex
Jakie lenistwo! Nie pytaj się, czy można, tylko sprawdź to. Co za problem przekopiować gotowy już kod do pliku i wysłać na serwer smile.gif ?
Saddam92
Chce mieć po prostu pewność czy to napewno będzie działać i wyłapywać wszystko co ma, a tego tak łatwo nie sprawdze, prawda ? winksmiley.jpg

Z góry dzięki za pomoc smile.gif
mike
Jak sprawdzisz to będziesz wiedział czy będzie działać.
I jesteś w błędzie, sprawdzić to możesz bardzo łatwo. Tylko trzeba chcieć.
scanner
Zobacz linijki 4 i 5 w poniższym kodzie - w ten sposób wyrzucasz wyjątki - więc wystarczy to wymusić i już.
  1. <?php
  2. try
  3. {
  4. throw new PDOException( 'Dupa!' );
  5. throw new optException ( 'Dupa!' );
  6. }
  7. catch(PDOException $e)
  8. {
  9. opdErrorHandler($e);
  10. }
  11. catch(optException $e)
  12. {
  13. optErrorHandler($e);
  14. }
  15. catch(Error $e) {
  16. $e->Report();
  17. }
  18. ?>
pyro
  1. <?php
  2. throw new PDOException( 'Dupa!' );
  3. throw new optException ( 'Dupa!' );
  4. ?>


wyczuwam nutke skrajności tongue.gif

Cytat
Chce mieć po prostu pewność czy to napewno będzie działać i wyłapywać wszystko co ma, a tego tak łatwo nie sprawdze, prawda ? winksmiley.jpg


sprawdzisz to baaardzo latwo...
scanner
Cytat(pyro @ 24.06.2008, 22:54:43 ) *
wyczuwam nutke skrajności tongue.gif
Azaliż gdzie?
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.