Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> obsługa wyjątków
Fixus
post 14.04.2011, 13:33:50
Post #1





Grupa: Zarejestrowani
Postów: 295
Pomógł: 9
Dołączył: 8.02.2006

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


Witam,
chciałbym ogarnąć obsługę wyjątków w php, ale jakoś tego nie czaje.

Załóżmy, że chcę wrzucić w blok try {} funkcję file_get_contents

W przypadku, gdy link nie istnieje powinno zwrócić wyjątek.

Ale kod:

  1. try {
  2. } catch(Exception $ex) { $ex->getMessage(); }


Nic nie zwraca mimo złego url`a

Co źle robię ?
Go to the top of the page
+Quote Post
wookieb
post 14.04.2011, 13:37:54
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




1) nic nie wyświetlasz
2) file_get_contents nie zwraca wyjątkó tylko błędy
3) Zamień błedy na wyjątki http://snippets.dzone.com/posts/show/1617
To jest przykład, ale kluczem jest zastosowanie set_error_handler


--------------------
Go to the top of the page
+Quote Post
Crozin
post 14.04.2011, 13:38:28
Post #3





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Wyjątki w PHP są o tyle śmieszne, że jeżeli sam ich sobie nie wyrzucisz to właściwie żadna biblioteka wbudowana w język tego nie zrobi. Po prostu w PHP wyjątki nie są zbyt często wykorzystywane. Zdecydowana większość dostępnych funkcji nadal informuje o błędzie w postaci zwrócenia null/false albo wygenerowaniem błędu (error / warning / notice).

Tak więc musiałbyś ten kod przerobić:
  1. try {
  2. if (!file_exists($link)) {
  3. throw ...;
  4. }
  5.  
  6. ...
  7. } catch (...) {
  8. ...
  9. }
Go to the top of the page
+Quote Post
Fixus
post 14.04.2011, 13:47:18
Post #4





Grupa: Zarejestrowani
Postów: 295
Pomógł: 9
Dołączył: 8.02.2006

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


to pesymistyczne wieści.

A jak najlepiej ustawić set_error_handler ?
Go to the top of the page
+Quote Post
wookieb
post 14.04.2011, 13:51:28
Post #5





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




google -> php convert errors to exceptions


--------------------
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.06.2025 - 22:42