![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 382 Pomógł: 0 Dołączył: 29.11.2005 Skąd: :jestem(); Ostrzeżenie: (0%) ![]() ![]() |
Sama obsługa błędów jest dla mnie (jeśli dobrze rozumiem) jasna , problem polega na wykorzystaniu tej obsługi .
Są pliki z klasami - pliki php - pliki php wykorzystują klasy i wysyłają dane do szablonów .... Generuję wyjątek w klasie np.DBusing bo nie można się połączyć.... ale w pliku php w kolejnej lini wysyłam zapytanie i dostaję kolejny wyjątek...hm... Można dać to w blok try ale wtedy mam jeszcze większy bałagan z wyjątkami (jeśli powstała by tablica wyjątków to pierwszy pociągnął by za sobą kolejne a nie tak to być powinno ). Jak pisać obługę błędów ? Ten post edytował jastu 27.11.2006, 20:03:31 -------------------- Powyższy post wyraża jedynie opinię autora w dniu dzisiejszym. Nie może on służyć przeciwko niemu w dniu jutrzejszym. Ponadto autor zastrzega sobie prawo zmiany poglądów, bez podawania przyczyny.
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
nie polaczy ci sie z baza -> wyjatek -> dalsze zapytania do bazy nie beda wykonywane Przenosze z php na PHP5 -------------------- Nie lubię jednorożców.
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 382 Pomógł: 0 Dołączył: 29.11.2005 Skąd: :jestem(); Ostrzeżenie: (0%) ![]() ![]() |
tzn że w klasie nie budujemy wyjątków ? ewentualnie możemy robić IF`y sprawdzając ? ? ?
btw . jeśli mamy konstrukcję
Jeśli dobrze rozumiem bład w 2 bloku try wygeneruje wyjątek ale plecenie 4 się wykona - co zrobić jeśli polecenie 4 korzysta z wyników operacji w poleceniu 2 i 3 , dać do jednego bloku 2 ,3 i 4 ? //edit polecenie numer 4 wygeneruje wyjątek ... a co z wyjątkami w klasach ? nie korzystamy ? btw. co zrobić by w każdym pliku nie korzystac z funkcji set_error(exception)_handler() ? Ten post edytował jastu 27.11.2006, 15:33:39 -------------------- Powyższy post wyraża jedynie opinię autora w dniu dzisiejszym. Nie może on służyć przeciwko niemu w dniu jutrzejszym. Ponadto autor zastrzega sobie prawo zmiany poglądów, bez podawania przyczyny.
|
|
|
![]()
Post
#4
|
|
![]() Developer Grupa: Moderatorzy Postów: 2 844 Pomógł: 20 Dołączył: 25.11.2003 Skąd: Olkusz ![]() |
Eh, zbytnio kombinujesz...
Exception jest tylko wyrzucany wtedy, gdy nie możliwe jest wykonanie jakiegoś algorytmu z przyczyn technicznych. Po to się stosuje wyjątki w celu wyeliminowania if'ów w ważnych częściach programu, gdyż są nie wygodne i nie niosą że sobą jakiejś informacji. |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 382 Pomógł: 0 Dołączył: 29.11.2005 Skąd: :jestem(); Ostrzeżenie: (0%) ![]() ![]() |
//edycja
W klasach generuemy błędy (przez throw) a w pliku łapiemy przez catch...ot cała filozofia... Jak przechwycić błędy których nie przewidzimy ? Ten post edytował jastu 27.11.2006, 20:01:44 -------------------- Powyższy post wyraża jedynie opinię autora w dniu dzisiejszym. Nie może on służyć przeciwko niemu w dniu jutrzejszym. Ponadto autor zastrzega sobie prawo zmiany poglądów, bez podawania przyczyny.
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 219 Pomógł: 5 Dołączył: 18.07.2006 Skąd: Piekary Śląskie Ostrzeżenie: (0%) ![]() ![]() |
Jak przechwycić błędy których nie przewidzimy ?
-------------------- CMS dla Twojej firmy
Wojciech Małota |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 675 Pomógł: 15 Dołączył: 7.11.2004 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Eh, zbytnio kombinujesz... Całkowicie się zgadzam. Wyjątki (jak sama nazwa wskazuje) służą do obsługi sytuacji wyjątkowych. Niestety można zauważyć, że często konstrukcja ta jest wykorzystywana bezmyślnie (np. zamiast klauzul if). -------------------- Kto pyta, nie błądzi...
Kto zbłądził, ten pyta... |
|
|
![]()
Post
#8
|
|
![]() Grupa: Moderatorzy Postów: 2 921 Pomógł: 269 Dołączył: 11.08.2005 Skąd: 127.0.0.1 ![]() |
Wyjątki w PHP5 stanowią bardzo dobrą alternatywę do wszędobylskich if-ów, które tylko zaśmiecają kod. Możesz stworzyć własne klasy wyjątków, które rozszerzają klasę Exception. Następnie w miejscu, gdzie wykonujesz jakiś kod, który może wygenerować używasz try{ ... } catch(TwojWyjatek $e) { ... }
-------------------- I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features. |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 219 Pomógł: 5 Dołączył: 18.07.2006 Skąd: Piekary Śląskie Ostrzeżenie: (0%) ![]() ![]() |
Całkowicie się zgadzam. Wyjątki (jak sama nazwa wskazuje) służą do obsługi sytuacji wyjątkowych. Niestety można zauważyć, że często konstrukcja ta jest wykorzystywana bezmyślnie (np. zamiast klauzul if). Nie zgadzam się z tobą. Wyjątki często służą do wychodzenia z zagnieżdżonych wywołań funkcji, gdzie nie ma odpowiednika składni break, albo jego użycie wiązało by się z dużym kłopotem. np:
-------------------- CMS dla Twojej firmy
Wojciech Małota |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 235 Pomógł: 0 Dołączył: 3.05.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam czy byście mogli mi przybliżyć bardziej bloki try i catch bo nierozumiem jak je zastosowac i podać przykład ? ,bardzo dziekuje za pomoc :roll2:
![]() |
|
|
![]()
Post
#11
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 224 Pomógł: 40 Dołączył: 6.07.2004 Skąd: Wuppertal Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#12
|
|
![]() Administrator wortalu Grupa: Przyjaciele php.pl Postów: 960 Pomógł: 39 Dołączył: 21.10.2003 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
~dzesi zapraszam do wortalu: http://wortal.php.pl/wortal/artykuly/proce...likacji/wyjatki
|
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 675 Pomógł: 15 Dołączył: 7.11.2004 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Nie zgadzam się z tobą. Wyjątki często służą do wychodzenia z zagnieżdżonych wywołań funkcji, gdzie nie ma odpowiednika składni break, albo jego użycie wiązało by się z dużym kłopotem. Wyjątki są rozwiązaniem wygodnym, ale zostały stworzone do sytuacji wyjątkowych... Z definicji nie służą do "wychodzenia z zagnieżdżonych wywołań funkcji". Cytat Wyjątek to sygnał o błędzie w trakcie wykonania programu. Powstaje [wyjątek] na skutek nieoczekiwanego błędu. Zbyt duże zagnieżdżenie funkcji @cicik jest może i błędem, ale programisty.../K. Barteczko/ Za B.W. Kernighan, R. Pike "Lekcja programowania": Cytat Używaj wyjątków tylko w sytuacjach wyjątkowych... Często nadużywa się wyjątków... Fakt, że nie można otworzyć pliku, trudno traktować jako coś wyjątkowego; generowanie wyjątku w takim wypadku to... uderzający przykład przerostu inżynierii w oprogramowaniu. Powinno się zarezerwować wyjątki dla naprawdę nieoczekiwanych zdarzeń, takich jak przepełnienie systemu plików czy błędy w obliczeniach zmiennopozycyjnych. Generowanie wyjątku, aby zmienić sterowanie programem, jest wygodym rozwiązaniem, ale nie zawsze koniecznym i zdecydowanie zbyt często nadużywanym (i na pewno nie stanowi alternatywy dla składni if). -------------------- Kto pyta, nie błądzi...
Kto zbłądził, ten pyta... |
|
|
![]()
Post
#14
|
|
![]() Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
Cytat Używaj wyjątków tylko w sytuacjach wyjątkowych... Często nadużywa się wyjątków... Fakt, że nie można otworzyć pliku, trudno traktować jako coś wyjątkowego; generowanie wyjątku w takim wypadku to... uderzający przykład przerostu inżynierii w oprogramowaniu. Powinno się zarezerwować wyjątki dla naprawdę nieoczekiwanych zdarzeń, takich jak przepełnienie systemu plików czy błędy w obliczeniach zmiennopozycyjnych. Dla mnie to jest przegiecie, to mam przy prawie kazdym dodawaniu sprawdzac czy nie wystapi przepelnienie i wyrzucic wyjatek? Blad w obliczeniach zmiennoprzecinkowych? Jaki? NaN ? przeciez to wartosc przewidziana w specyfikacji liczb zm.przec. w IEEE754. Gdy bedziemy uzywac wyjatkow tylko do obslugi zdarzen super-wyjatkowych (pomijam tu uzywanie wyjatkow do zmiany sterowania przebiegiem kodu -- tu na pewno sie nie nadaja; Ruby ma raise/rescue -- jako obsluga bledow i throw/catch do sterowania przebiegiem kodu. Koniec dygrasji) to kod bedzie wygladal jak w jezyku bez wyjatkow -- multum zagniezsdzonych ifow. Grrr -------------------- Nie lubię jednorożców.
|
|
|
![]()
Post
#15
|
|
![]() Grupa: Zarejestrowani Postów: 1 415 Pomógł: 117 Dołączył: 7.09.2005 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
PHP5 Exception handling
Sądzę, że to pomoże. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 22.06.2025 - 14:24 |