Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][OOP] Wyjątki
Saddam92
post 24.06.2008, 18:42:10
Post #1





Grupa: Zarejestrowani
Postów: 69
Pomógł: 0
Dołączył: 17.11.2006

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


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:)
Go to the top of the page
+Quote Post
scanner
post 24.06.2008, 18:47:11
Post #2





Grupa: Zarząd
Postów: 3 503
Pomógł: 28
Dołączył: 17.10.2002
Skąd: Wrocław




Oczywiście, że powinieneś uzyć jednego bloku try{} - zagnieżdżanie ich raczej nie ma sensu z tego co widzę w Twoim kodzie.


--------------------
scanner.info
Warto pamiętać: KISS, DRY
Go to the top of the page
+Quote Post
Saddam92
post 24.06.2008, 18:53:54
Post #3





Grupa: Zarejestrowani
Postów: 69
Pomógł: 0
Dołączył: 17.11.2006

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


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 )
Go to the top of the page
+Quote Post
.radex
post 24.06.2008, 19:00:45
Post #4





Grupa: Zarejestrowani
Postów: 1 657
Pomógł: 125
Dołączył: 29.04.2006

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


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 ?


--------------------
blog | Tadam — minutnik do Pomodoro na Maka :)
Go to the top of the page
+Quote Post
Saddam92
post 24.06.2008, 19:07:50
Post #5





Grupa: Zarejestrowani
Postów: 69
Pomógł: 0
Dołączył: 17.11.2006

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


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
Go to the top of the page
+Quote Post
mike
post 24.06.2008, 19:15:10
Post #6





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


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ć.
Go to the top of the page
+Quote Post
scanner
post 24.06.2008, 21:45:36
Post #7





Grupa: Zarząd
Postów: 3 503
Pomógł: 28
Dołączył: 17.10.2002
Skąd: Wrocław




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. ?>


--------------------
scanner.info
Warto pamiętać: KISS, DRY
Go to the top of the page
+Quote Post
pyro
post 24.06.2008, 21:54:43
Post #8





Grupa: Zarejestrowani
Postów: 2 148
Pomógł: 230
Dołączył: 26.03.2008

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


  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...


--------------------
ET LINGUA EIUS LOQUETUR IUDICIUM
Go to the top of the page
+Quote Post
scanner
post 24.06.2008, 21:57:46
Post #9





Grupa: Zarząd
Postów: 3 503
Pomógł: 28
Dołączył: 17.10.2002
Skąd: Wrocław




Cytat(pyro @ 24.06.2008, 22:54:43 ) *
wyczuwam nutke skrajności tongue.gif
Azaliż gdzie?


--------------------
scanner.info
Warto pamiętać: KISS, DRY
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 Wersja Lo-Fi Aktualny czas: 18.04.2024 - 06:06