Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> wyjątki a error_handler z php4
Balin
post
Post #1





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 14.05.2003

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


Chciałbym rozpocząć tutaj dyskusje na temat użyteczności wyjątków i ich wyższości nad set_error_handler z php4, dlaczego wyjątki są lepsze, na czym polega ich wyższość ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
hawk
post
Post #2





Grupa: Zarejestrowani
Postów: 521
Pomógł: 0
Dołączył: 3.11.2003
Skąd: 3city

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


Sugeruję rozwinięcie tematu i rozpoczęcie od wyjaśnienia, dlaczego uważasz jedno za lepsze od drugiego. Ja np. uważam je za inne, i nie wiedzę jak jedno ma się do drugiego. To jest sugerowanie odpowiedzi mad.gif.
Go to the top of the page
+Quote Post
Balin
post
Post #3





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 14.05.2003

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


Ok, wiec do czego najlepiej nadaja sie wyjatki, moje pytanie zostalo tak sformulowane poniewaz nie jestem obeznany z tematem wyjatkow i chcialem sie cos niecos na ten temat dowiedziec.
Go to the top of the page
+Quote Post
hawk
post
Post #4





Grupa: Zarejestrowani
Postów: 521
Pomógł: 0
Dołączył: 3.11.2003
Skąd: 3city

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


Hmm, wyjątki najlepiej nadają się do obsługi sytuacji wyjątkowych. Kiedy nie można kontynuować już tego co się właśnie robiło. I kiedy kod, który rzuca wyjątek, nie może nic sensownego z nim sam zrobić. Typowym przykładem jest biblioteka funkcji, która nie może przecież sama obsługiwać wyjątków i wywalać komunikatów o błędach, z racji tego właśnie że jest biblioteką.

Generalnie o wyjątkach można książki pisać. Temat rzeka, tak jak samo OOP. Polecam przyjrzenie się np. bibliotekom Javy, które są świetnym przykładem.
Go to the top of the page
+Quote Post
Ozzy
post
Post #5





Grupa: Zarejestrowani
Postów: 204
Pomógł: 0
Dołączył: 26.12.2003
Skąd: Rzeszów

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


Jak dla mnie wyjątki należy zostawić Javie, a w php używać errorhandlerów, w przeciwnym wypadku będzie trzeba używać i obslugi wyjątków i błędów, co się chyba mija z celem...
Go to the top of the page
+Quote Post
bamboos
post
Post #6





Grupa: Zarejestrowani
Postów: 115
Pomógł: 0
Dołączył: 3.05.2003
Skąd: Łódź

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


No właśnie. Bardzo interesuje mnie temat wyjątków. Zresztą bardzo chciałbym wreszcie poznać nowe udogodnienia php5! Mniej więcej rozumiem jak działają wyjątki:
  1. <?php
  2. class samochod
  3. {
  4. public $samochod;
  5.  
  6. public function start($mojsamochod) {
  7. if ( $this -> samochod != $mojsamochod ) {
  8. throw new Exception(&#092;"Nie mam takiego samochodu.\");
  9. } else {
  10. echo &#092;"Samochód $mojsamochod wystartował...\";
  11. }
  12. }
  13. }
  14.  
  15. $ford = new samochod;
  16. $ford -> samochod = 'mustang';
  17.  
  18. try {
  19. $ford -> start('mondeo');
  20. } catch (Exception $blad) {
  21. echo $blad -> getMessage();
  22. }
  23. ?>

No i wszystko gra, nie ten samochód i błąd jest reportowany. ale...
  1. <?php
  2. class samochod
  3. {
  4. public $samochod;
  5.  
  6. public function start($mojsamochod) {
  7. if ( $this -> samochod != $mojsamochod ) {
  8. echo &#092;"Nie mam takiego samochodu.\";
  9. } else {
  10. echo &#092;"Samochód $mojsamochod wystartował...\";
  11. }
  12. }
  13. }
  14.  
  15. $ford = new samochod;
  16. $ford -> samochod = 'mustang';
  17. $ford -> start('mondeo');
  18. ?>

Daje taki sam rezultat, więc po co bawić się w to wszystko, jak potem wykożystywanie takiej klasy jest łatwiejsze? W jakich sytuacjach należy kożystać z wyjątków i czy to wogule jest potrzebne, bo jak narazie nie widze w tym za bardzo sensu?
Z góry dzięki za pomoc!


--------------------
Go to the top of the page
+Quote Post
silent
post
Post #7





Grupa: Zarejestrowani
Postów: 127
Pomógł: 0
Dołączył: 18.08.2004
Skąd: Jastrzębie Zdrój

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


Prosty przykład - połączenie z bazą danych, wybranie rekordów i wyświetlenie ich. W przypadku wyjątków wstawiasz taki blok do try{ } i masz z głowy, a w przypadku Twojego drugiego sposobu przy każdym poleceniu musisz wstawiać if'a żeby sprawdzić czy czasem nie wystąpił błąd. Tak ja to widzę, mogę się mylić smile.gif.
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: 19.08.2025 - 16:15