![]() |
![]() ![]() |
![]() |
![]()
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:
Nic nie zwraca mimo złego url`a Co źle robię ? |
|
|
![]()
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 -------------------- |
|
|
![]()
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ć:
|
|
|
![]()
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 ? |
|
|
![]()
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
-------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 18.06.2025 - 22:42 |